Skip to main content

包含一种链式预处理设计模式(以更低的时间成本解决同时需要多种预处理方式的场景)、以及实现了一些文本预处理方法的包

Project description

文本预处理

该包包含一种链式预处理设计模式

当实际需求中需要多种预处理操作,并且每个预处理之间有相互交叉、并且预处理的顺序也会影响结果,如考虑如下情况:

若需求需要同时依赖以下三种预处理方式

“文本清洗->段落分割->中文转数字”,

“文本清洗->段落分割”,

“段落分割->文本清洗”

称每一个预处理流程为一条“预处理链”

手动维护多个预处理链较为麻烦,并且当每条预处理链中有可复用部分时,若要复用则又会使得代码较为耦合,并且当后续预处理链上有更改时维护也很麻烦

因此,设计这样一个类,只要告诉类有哪些预处理方法,和每条预处理链的预处理方法调用顺序,让该类自动维护并装配得到所需的结果

该类会保存每一个预处理子步骤的副本,实际上维护了一个预处理文本树,当可复用时不会重复计算。因此,时间效率上更快,但是会占用更大内存空间(因为每一步都会保存)

有需求的话可以在目前的基础上,自行实现对内存空间的优化

另外该包实现了一些文本预处理方法,如:

“去除HTML标签”、“文本过滤(去除生僻字、大写转小写、全角转半角、特殊 / 繁体数字转普通数字)”、“识别文本中表示分割的标点符号”、“中文数字转阿拉伯数字”

由于目前主要是自用的,只能保证满足我自己的业务场景,所以请您使用前测试一下是否满足您的需求情况

1.如何安装

pip install pre_process_chain

2.该包主要包含的类

PreProcessChain

文本预处理链,告诉该类有哪些预处理方法,并且每一个预处理链的预处理方法调用顺序,即可自动维护和生成预处理结果,后续更改时也很方便。 时间性能更高,占用更多的内存空间。

使用方法:

# 初始化实例,声明有哪些预处理方法及这些方法的别名
pre_process_chain = PreProcessChain({
    "purify": TextProcess.purify,
    "numerate": TextProcess.numerate_chinese_digit,
    "separate": lambda x: TextProcess.scan_separator(x, " ", "|")
})

# 对某段文本指定某些预处理方法,若是多个预处理方法串行执行时用"-"连接
result = pre_process_chain.generate(text, ["purify-numerate", "purify-separate"])

# 获取某种方法的预处理结果
result.get("purify")  # 获取预处理链"purify"的结果
result.get("purify-numerate")  # 获取预处理链"purify-numerate"的结果

TextProcess

实现了一些文本预处理方法,具体请看代码注释

TextProcess.remove_html_tag()  # 去除HTML标签
TextProcess.purify()  # 文本过滤(去除生僻字、大写转小写、全角转半角、特殊 / 繁体数字转普通数字)
TextProcess.numerate_chinese_digit()  # 将中文数字转为阿拉伯数字
TextProcess.scan_separator()  # 扫描文本中的分隔符标点符号

Project details


Download files

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

Source Distribution

pre_process_chain-0.1.3.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

pre_process_chain-0.1.3-py3-none-any.whl (39.5 kB view details)

Uploaded Python 3

File details

Details for the file pre_process_chain-0.1.3.tar.gz.

File metadata

  • Download URL: pre_process_chain-0.1.3.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.5

File hashes

Hashes for pre_process_chain-0.1.3.tar.gz
Algorithm Hash digest
SHA256 82549f5cbd5956dc434f462b563b8376de5205d01478d5738360ed727ca5ce44
MD5 eb9d1b09acfc69fdf65ef79fdfe71a10
BLAKE2b-256 b222bb84250d51d8f9ea242b02ce090438230217fe89fd188b44d05a8779b9fb

See more details on using hashes here.

File details

Details for the file pre_process_chain-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pre_process_chain-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6b90858f93cb0ed56243faabe8d6ccfc7eb1884750a6bed2342fd3a69691ee85
MD5 fed3858b74afab075816fad54279c54c
BLAKE2b-256 01e9eb128ec78086d4b891ae32dc48c7b56ee7e509ab8d0e17cb0d95503b23b9

See more details on using hashes here.

Supported by

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