跳转到主要内容

用于帮助应用专家规则到sonobat输出的实用程序

项目描述

Echoclean

Echoclean是一个实用程序,用于帮助将专家规则应用到sonobat输出。然而,该程序旨在非常通用,可能适用于其他生成类似电子表格输出的自动分类器的输出。

依赖关系

  • openpyxl (版本 2.5.14,不得更新!)
  • click

安装

pip install echoclean

开发安装

下载或克隆此存储库,然后运行

python setup.py install

使用方法

从命令行,在您的激活Python环境中

Usage: echoclean apply [OPTIONS] RULES DATA OUTPUT

  Apply the rules to the input data.

Options:
  -v, --verbose  Verbose output
  --help         Show this message and exit.

详细选项可以重复两次-v -v以提供更多详细输出。

工作原理

Echoclean通过将RULES文件中的专家规则应用到DATA文件中工作。文件可以是XLSX、CSV或制表符分隔的。如果找到XLSX文件和多个工作表,您将被提示选择正确的工作表。

程序首先比较DATA和RULES文件之间的列。存在于两个文件中的任何列都用于构建规则。在将规则应用到DATA的行时,仅存在于RULE文件中的任何列都用作结果集。DATA文件中未在规则中找到的任何列都复制到OUTPUT中。这种灵活性允许您为几乎任何可以用行/列格式表示的简单数据开发规则。

注意:如果您将此程序的输出再次作为DATA运行,您必须重命名结果集的列,否则它们将被用作条件并产生意外结果。

此程序不关心您如何命名列,但对于DATA中的某一列,规则必须完全相同(包括大小写)。此程序不期望任何特定的列,但如果它找到名为'Filename'的列,它将尝试使用Sonobat格式解析日期戳。然后使用这些日期戳来确定文件录制的夜晚,任何中午之前的时间都被假定为前一个夜晚的一部分。

规则按顺序应用,按照从文件中读取的顺序。

输出文件始终是一个包含多个工作表的XLSX电子表格。一个工作表包含分类结果,即DATA文件中的每一行,前面是用于分类该行的RULES文件的结果集。对于结果集中的每一列,都会创建一个额外的工作表,其中包含在分类结果中找到的每个唯一结果值的行数。

规则

规则是一组必须满足的条件,才能应用该规则。一旦应用规则,就不再测试其他规则。

可以将规则视为形成二分法关键;当DATA中的一行未通过给定规则时,它将与其进行下一规则的测试,因此不符合先前的任何规则。因此,您的规则可以是累加的,因为您可以安全地假设该行未满足任何先前条件,您应该从最严格到最不严格地构建您的规则。

示例

给定以下规则

规则1 Consensus: 'ANPA' 规则2 Consensus: 'MYLU'

这些规则将按如下方式评估:任何与规则2进行测试的DATA中的行都隐式地不是规则1中的任何标准。因此,在这种情况下,它等同于

Consensus是 'MYLU' 且不是 'ANPA'.

我们建议您为规则编号以帮助调试。这样做可以更容易地直观比较给定行中的值与应用或期望的规则。

注意:此程序不会检查您的规则的有效性。您负责确保您的规则在逻辑上是正确的,并且顺序正确。

标准

标准必须与列的数据类型匹配。范围或相等比较仅适用于数值类型。

任何 如果在给定规则中为列留空,则允许数据中的该列具有任何值以匹配。您也可以提供值'任何',但这是不必要的。

空白 如果您在给定规则中指定'空白',则该列必须在数据中为空白才能匹配。

数值类型 您可以指定这样的相等比较

> 10
< 12
>= 40
<= 20
= 2
4 - 10   (equivalent to >= 4 AND <= 10)

文本类型 您可以指定要比较的可能值的列表。数据中的行只需包含其中之一。

示例

规则1 Consensus: LANO, COTO, TABR, LACI, 或空白

将匹配COTO,但不会匹配EPFU。这也是一个特殊情况,空白可以匹配,但列表中未列出的任何值都会失败。

您还可以使用否定条件,但只能允许一个值

Consensus: Not EPFU

项目详情


下载文件

下载适用于您平台的应用文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

echoclean-0.1.0.tar.gz (9.4 kB 查看哈希值)

上传时间 源代码

支持者