包含一种链式预处理设计模式(以更低的时间成本解决同时需要多种预处理方式的场景)、以及实现了一些文本预处理方法的包
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
Built Distribution
File details
Details for the file pre_process_chain-0.1.2.tar.gz
.
File metadata
- Download URL: pre_process_chain-0.1.2.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7cc47d0abe89faa80359f3ea53ae8c34f290f132e617c35dcda3e1d9b09b67b |
|
MD5 | f8407b8d927bcb775afea9653a586d3a |
|
BLAKE2b-256 | 923503ff4d21a26dddb292e6cbbda63fa14b50233631bc15ba34be40778c5043 |
File details
Details for the file pre_process_chain-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: pre_process_chain-0.1.2-py3-none-any.whl
- Upload date:
- Size: 39.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a977087304f7174cba545434d3e675804723c27cc929ee717a44501b176edb0b |
|
MD5 | c7d04b94597ca42682bce2e9936f1f57 |
|
BLAKE2b-256 | 1a03e81a4b82e83551662891acdb6645e9f77d488eb55a02ce6e6d52aafc791a |