Metadata-Version: 2.1
Name: pre_process_chain
Version: 0.1.4
Summary: 包含一种链式预处理设计模式（以更低的时间成本解决同时需要多种预处理方式的场景）、以及实现了一些文本预处理方法的包
Home-page: 
Author: ray.ping
Author-email: 342099577@qq.com
License: MIT
Requires-Dist: cn2an>=0.5.22

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

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

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

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

    "文本清洗->段落分割",

    "段落分割->文本清洗"

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

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

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

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

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

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

“去除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()  # 扫描文本中的分隔符标点符号
