Skip to main content

提供基于 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.tar.gz (28.7 kB 查看哈希

已上传 source

内置分布

ngram-4.0.3-py3-none-any.whl (24.3 kB 查看哈希

已上传 py3