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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pre_process_chain-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 3a61cb6fcf7cb927f8f16ff1937d2a0845221675cf2d189ad2d94712984937d1
MD5 fe732d402b88cadd9726192fb894fc90
BLAKE2b-256 ec765fbb4c8335dbf8520ee63c0624d9ff96009e776ce779ec24a857e8704b27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pre_process_chain-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 27fc9fc4e76c92291b9ba9414b1c2e30ab1dd3a0ff2ed341c8c4166e9852aaa3
MD5 990023d3bf11c96b49be4b3a3144da79
BLAKE2b-256 de372efc8a22c98a7a9d23c4ce0ffa0bbe38f2c3b2b5715e0bd907b1b22709c2

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