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.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

pre_process_chain-0.1.0-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pre_process_chain-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 95b97e3d21b3c9a78771878e44dc5a0dbb39aa64c6a67f4105f4eee9de0973be
MD5 9d205c66be878de02d2cb6f776bd7219
BLAKE2b-256 ee5125c8f3c23232db66731cf964ff58052029d538a80251b2f5ff97803e08ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pre_process_chain-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f794a390a4b35be16d61ecd4be8ef32c72f249324aeb08133962d67a1c6b926
MD5 2ca99c65c64b335f910ba773e53352e6
BLAKE2b-256 feb45f6797874e4189895874a1fca4e625e98e63bbd8ecc52a6264291f31c1f6

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