Skip to main content

Easily label file by rules with Python

Project description

SimpleLabel

simplelabel 是一个使用 Python 编写的工具,它可以根据规则轻松地对文件进行标注,同时也支持根据规则快速生成 SQL 语句。

安装

首先,确保你已经安装了 Python 3.6 或更高版本(推荐Python 3.8及以上)。然后,你可以使用以下命令安装 simplelabel

pip install simplelabel

命令行使用方法

显示版本信息

如果你想查看 simplelabel 的版本信息,可以使用以下命令:

simplelabel --version

快速完成数据标注

使用 --label 指令可以快速完成数据标注,该指令需要输入规则文件地址和原始待标注的数据文件地址,同时通过 -o 标识指定数据输出地址。示例如下:

simplelabel --label rule_file.csv data_file.csv -o output_labeled_data.csv

快速完成 SQL 语句生成

使用 --generate 指令可以快速完成 SQL 语句生成,该指令需要输入规则文件地址,同时通过 -o 标识指定 SQL 文件输出地址。示例如下:

simplelabel --generate rule_file.csv -o output_sql.txt

Python 使用方法

simplelabel 也提供了 Python API,你可以使用以下代码来完成数据标注和 SQL 语句生成:

from simplelabel import FieldMap, FieldsIdentifier
from simplelabel import DataLabelEngine, SQLGenerator

if __name__ == '__main__':
    rule_file_path = 'data/rules_zfb.csv'
    bill_file_path = 'data/bills_zfb.csv'
    labeled_file_path = 'data/bills_zfb_labeled.csv'
    sql_file_path = 'data/bills_zfb_sql.sql'

    field_map = FieldMap(
        field1='筛选字段1',
        condition1='筛选条件1',
        keyword1='关键字1',
        logic='关联条件',
        field2='(可选)筛选字段2',
        condition2='(可选)筛选条件2',
        keyword2='(可选)关键字2',
        label='账单类别'
    )

    # 根据规则标注数据
    label_engine = DataLabelEngine.init(rule_file_path, field_map)
    label_engine.label(bill_file_path, labeled_file_path)

    field_identifier = FieldsIdentifier({
        '业务类型': 'yw_type',
        '业务描述': 'yw_desc',
        '备注': 'remark'
    }).init()

    # 根据规则生成 SQL 语句
    sql_generator = SQLGenerator.init(rule_file_path, field_map)
    sql_generator.generate(sql_file_path, field_identifier)

代码解读

  • FieldMap 类用于定义规则文件中的列名映射关系,包括筛选字段、筛选条件、关键字、关联条件、筛选字段2、筛选条件2、关键字2和账单类别等。
# 默认列名映射关系
# DEFAULT_FIELD_MAP
field1='筛选字段1',
condition1='筛选条件1',
keyword1='关键字1',
logic='关联条件',
field2='(可选)筛选字段2',
condition2='(可选)筛选条件2',
keyword2='(可选)关键字2',
label='账单类别'
  • FieldsIdentifier 类用于定义需标注数据的字段标识和字段名称的对应关系,包括业务类型、业务描述和备注等。
  • DataLabelEngine 类用于根据规则对数据进行标注,包括初始化规则、数据标注和输出标注结果等方法。
  • SQLGenerator 类用于根据规则生成 SQL 语句,包括初始化规则、生成SQL语句和输出SQL文件等方法。

在上述代码中,rule_file_path 是标注规则文件路径,bill_file_path 是原始待标注的数据文件路径,labeled_file_path 是标注后的数据文件路径,sql_file_path 是 SQL 语句文件路径。

我们首先实例化 FieldMap 对象,接着使用 DataLabelEngine 类根据标注规则对原始数据进行标注,输出标注结果文件,最后使用 SQLGenerator 类生成 SQL 语句,输出SQL文件。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simplelabel-1.3.0b0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file simplelabel-1.3.0b0-py3-none-any.whl.

File metadata

  • Download URL: simplelabel-1.3.0b0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simplelabel-1.3.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 9df7c5160cf2b5d38dc1edc69a3a0cff1e70107e245f82b815f213d9588bcf2c
MD5 752a0d4308e975b8be3924f62f9f9c86
BLAKE2b-256 1371b228c9f6fce58d3a36fda4010a387e03c66187dceefab4c8bf6136664ab6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page