Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 3.53 KB

README_CN.md

File metadata and controls

71 lines (49 loc) · 3.53 KB

Matcher

RustPythonJavaC

PyPI - License

Crates.io VersionGitHub Actions Workflow Statusdocs.rsCrates.io Total Downloads

PyPI - VersionPyPI - Python VersionPyPI - Downloads

一个高性能文本匹配器,旨在解决逻辑文本变体的词匹配问题,以Rust实现。

它对以下方面非常有帮助:

  • 精确率与召回率:文本匹配是一个召回过程,逻辑匹配提高精确率,文本变体匹配提高召回率。
  • 内容过滤:检测和攻击性或敏感词语。
  • 搜索引擎:通过识别相关关键词来改进搜索结果。
  • 文本分析:从大量文本中提取特定信息。
  • 垃圾邮件检测:识别电子邮件或消息中的垃圾内容。
  • ···

特性

有关详细的实现,请参见Design Document

  • 多种匹配方法
    • 简单词匹配
    • 基于正则表达式的匹配
    • 基于相似度的匹配
  • 文本转换
    • 繁简转换:将繁体字转换为简体字。例如:蟲艸 -> 虫草
    • 删除特定字符:移除特定字符。例如:*Fu&*iii&^%%*&kkkk -> Fuiiikkkk
    • 规范化:将特殊字符规范化为可识别字符。例如:𝜢𝕰𝕃𝙻𝝧 𝙒ⓞᵣℒ𝒟! -> hello world!
    • 拼音转换:将汉字转换为拼音以进行模糊匹配。例如:西安 -> xi an, 匹配 洗按 -> xi an, 但不匹配 -> xian
    • 拼音字符转换:将汉字转换为拼音。例如:西安 -> xian, 匹配 洗按 -> xian
  • 与或非词匹配
    • 考虑单词的重复次数。
    • 例如:hello&world 匹配 hello worldworld,hello
    • 例如:无&法&无&天 匹配 无无法天(因为 重复两次),但不匹配 无法天
    • 例如:hello~helloo~hhello 匹配 hello 但不匹配 helloohhello
  • 可定制的豁免列表:排除特定单词的匹配。
  • 高效处理大型词列表:针对性能进行了优化。

Rust 用户

请参阅 Rust README

Python 用户

请参阅 Python README

C, Java 和其他用户

我们提供动态链接库,请参阅 C READMEJava README

或从源构建

git clone https://github.com/Lips7/Matcher.git
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain nightly -y
cargo build --release

target/release 文件夹底下找到 libmatcher_c.so/libmatcher_c.dylib/matcher_c.dll

预构建的包

访问 release page 来下载预构建的动态链接库.

性能测试

请参阅 benchmarks 查看更多细节。