symspell复合的python实现

sympound的Python项目详细描述


sympound python

这个库是Python中SymSpellCompound算法的一个实现它最初是从rcourivaud/symspellcompound派生的,尽管大部分代码都被重写了。

安装

pip install sympound

文档

如果您想要一个快速完整的示例,请参见example.py

创建sympound对象

第一步是创建一个sympound对象,构造函数接受两个主要参数:

  • distancefun是一个用于计算两个字符串之间距离的函数它需要两个参数(要比较的两个字符串)。您通常希望使用一个计算Damerau-Levenshtein distance的函数,但是您可以获得更多的创造性,并使用键盘距离。
  • {< CD3> }是将预先计算的最大距离。增加此参数将返回更多建议,但也会使内存打印更大

添加词典

然后可以通过load_dictionary(filename)函数添加一些字典,通常以文件路径作为参数。字典的格式通常是单词列表(每行一个)或单词和频率列表(用空格分隔)。有关示例,请参见example-dict.txt

您还可以使用create_dictionary_entry(key, count)直接添加条目,其中key是有效字符串,而count是与之关联的频率。如果数据不是像前面描述的字典那样的简单格式,建议使用此方法。

在这个阶段会发生很多计算,添加大量条目可能很容易需要一分钟以上的时间,因此我们提供了两个函数来将分析的归纳结果保存为pickle:save_pickle(filename)load_pickle(filename),这两个函数都将文件路径作为参数。注意,腌制的是gzip。

查找

一旦加载了字典,就可以通过调用^ {< CD10>}获得字符串的建议,其中^ {< CD11>}是要分析的字符串,^ {CD12>}是您建议的最大间距。

函数返回一个SuggestItems的排序列表,包含三个字段:

  • term是建议的固定字符串
  • distance与原始字符串的距离
  • count是字典中给定的频率

维护

在PIP上上载:

python setup.py sdist
twine upload dist/*

版权所有

该代码版权所有esukhia,2018,并在MIT License下分发。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ssl证书javax。网ssl。SSLHandshakeException:java。安全cert.CertificateException:没有与IP地址匹配的主题替代名称   基于组件的体系结构的java粒度   java在读取文件中的下一行和上一行时,我得到一个空指针异常   java是什么。StrutConfig。xml。strutsdia文件?   java中如何根据枚举字段对一组对象进行排序   java Firebase setPersistenceEnabled。导致大量内存使用   java奇数编译泛型类和列表错误   java类型org没有可用的源代码。石英克隆表达;您是否忘记继承所需的模块?   java如何使用map计算列表中整数列表的和,并获得一个新列表,其中每个条目对应于每个计算出的和?   java二进制搜索不会结束   java跳过Jackson中的错误JSON数据   在服务层中使用依赖项注入时引发java空指针异常。DAO类bean为空   访问者模式如何解释这两个Java程序运行时间的差异?   用Java扩展日历   java调用通用静态方法