一个高性能文本匹配器,旨在解决逻辑和文本变体的词匹配问题,以Rust实现。
它对以下方面非常有帮助:
- 精确率与召回率:文本匹配是一个召回过程,逻辑匹配提高精确率,文本变体匹配提高召回率。
- 内容过滤:检测和攻击性或敏感词语。
- 搜索引擎:通过识别相关关键词来改进搜索结果。
- 文本分析:从大量文本中提取特定信息。
- 垃圾邮件检测:识别电子邮件或消息中的垃圾内容。
- ···
有关详细的实现,请参见Design Document。
- 多种匹配方法:
- 简单词匹配
- 基于正则表达式的匹配
- 基于相似度的匹配
- 文本转换:
- 繁简转换:将繁体字转换为简体字。例如:
蟲艸
->虫草
- 删除特定字符:移除特定字符。例如:
*Fu&*iii&^%%*&kkkk
->Fuiiikkkk
- 规范化:将特殊字符规范化为可识别字符。例如:
𝜢𝕰𝕃𝙻𝝧 𝙒ⓞᵣℒ𝒟!
->hello world!
- 拼音转换:将汉字转换为拼音以进行模糊匹配。例如:
西安
->xi an
, 匹配洗按
->xi an
, 但不匹配先
->xian
- 拼音字符转换:将汉字转换为拼音。例如:
西安
->xian
, 匹配洗按
和先
->xian
- 繁简转换:将繁体字转换为简体字。例如:
- 与或非词匹配:
- 考虑单词的重复次数。
- 例如:
hello&world
匹配hello world
和world,hello
- 例如:
无&法&无&天
匹配无无法天
(因为无
重复两次),但不匹配无法天
- 例如:
hello~helloo~hhello
匹配hello
但不匹配helloo
和hhello
- 可定制的豁免列表:排除特定单词的匹配。
- 高效处理大型词列表:针对性能进行了优化。
请参阅 Rust README。
请参阅 Python README。
我们提供动态链接库,请参阅 C README 和 Java 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 查看更多细节。