提供基于 N-gram 的模糊搜索的“set”子类。
项目描述
NGram 类扩展了 Python 'set' 类,通过 N-gram 相似性度量对成员进行有效的模糊搜索。它还具有比较一对字符串的静态方法。
N-grams 是基于字符而不是基于单词的,并且该类没有实现语言模型,只是通过字符串相似性搜索成员。
请参阅文档,其中包括教程和发行说明。
使用GitHub 问题跟踪器报告问题。
安装
要从PyPI安装 python-ngram :
pip install ngram
它是如何工作的?
该集合存储任意项,但对于非字符串项,必须指定键函数(例如str )以提供字符串表示。key 函数还可用于在 N-gram 索引之前对字符串项进行规范化(例如小写)。
为了索引一个字符串,它用指定的虚拟字符填充字符串,然后将其拆分为长度为 N(默认 N=3)个字符的重叠子字符串,并将每个 N-gram 与使用它的项目相关联。
为了找到与查询字符串相似的项目,它将查询拆分为 N-gram,收集与查询共享至少一个 N-gram 的所有项目,并根据共享与非共享 N-gram 之间的比率对项目进行排名字符串。
历史
2007 年,Michel Albert (exhuma) 基于 Tarek Ahmed 的 Perl 的 String:: Trigram 模块编写了 python-ngram 模块,并将 2.0.0b2 的代码提交给一个现已废弃的Sourceforge subversion repo。
自 2008 年底以来,Graham Poulter 一直在维护 python-ngram,最初对其进行重构以构建在set类上,并添加了特性、文档、测试、性能改进和 Python 3 支持。
发展
开发在Github上进行。在检查 repo 时运行tox以构建 Sphinx 文档并运行测试。运行pip install -e 。在 virtualenv 中以可编辑模式安装模块。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
ngram-4.0.3- py3 -none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7562c74bf4fb658d8368fb6e87116640f90502884920531a5afb6ba42105eb02 |
|
| MD5 | deec87b8dc9abcf079e485ec784880be |
|
| 布莱克2-256 | 7eae88af04931a13070095e15924430e6e544c29272b5ae377cb13a7c0e48063 |