纯python拼写检查器基于peter norvig的工作

pyspellchecker的Python项目详细描述


https://badge.fury.io/py/pyspellchecker.svghttps://travis-ci.org/barrust/pyspellchecker.svg?branch=masterhttps://coveralls.io/repos/github/barrust/pyspellchecker/badge.svg?branch=masterDownloads

纯python拼写检查基于Peter Norvig’s关于设置的博客文章 一个简单的拼写检查算法。

它使用Levenshtein Distance 在编辑距离为2的范围内查找排列的算法 原话。然后比较所有排列(插入、删除, 替换和转置)到单词频率中的已知单词 列表。频率表中经常出现的单词有 更有可能得到正确的结果。

pyspellchecker支持多种语言,包括英语、西班牙语, 德语、法语和葡萄牙语。词典是使用 github上的WordFrequency project

pyspellchecker支持python 3和python 2.7,但一如既往,支持python 3 是首选版本!

pyspellchecker允许设置要检查的levenshtein距离。 对于较长的单词,强烈建议使用距离1,而不是 默认2.请参见快速启动以了解如何更改距离参数。

安装

最简单的安装方法是使用pip:

pip install pyspellchecker

从源安装:

git clone https://github.com/barrust/pyspellchecker.git
cd pyspellchecker
python setup.py install

一如既往,我强烈建议使用 Pipenv帮助管理的包 依赖关系!

快速启动

安装后,使用pyspellchecker应该相当简单 前进:

fromspellcheckerimportSpellCheckerspell=SpellChecker()# find those words that may be misspelledmisspelled=spell.unknown(['something','is','hapenning','here'])forwordinmisspelled:# Get the one `most likely` answerprint(spell.correction(word))# Get a list of `likely` optionsprint(spell.candidates(word))

如果单词频率列表不符合您的喜好,您可以添加 文本以生成更适合您的用例的列表。

fromspellcheckerimportSpellCheckerspell=SpellChecker()# loads default word frequency listspell.word_frequency.load_text_file('./my_free_text_doc.txt')# if I just want to make sure some words are not flagged as misspelledspell.word_frequency.load_words(['microsoft','apple','google'])spell.known(['microsoft','google'])# will return both now!

如果要检查的单词太长,建议减少 到1的距离。这可以在初始化咒语时完成 上课或事后检查。

fromspellcheckerimportSpellCheckerspell=SpellChecker(distance=1)# set at initialization# do some work on longer wordsspell.distance=2# set the distance parameter back to the default

其他方法

On-line documentation可用;下面包含一些可用功能的cliff notes版本:

correction(word):返回 拼写错误的单词

candidates(word):返回 拼写错误的单词

known([words]):返回单词频率中的单词 列表

unknown([words]):返回那些不在频率内的单词 列表

word_probability(word):给定单词的频率 频率列表中的单词

用户不太可能需要以下内容,但可以使用:

edit_distance_1(word):返回levenshtein中所有字符串的集合 基于所选语言的字母表的距离

edit_distance_2(word):返回levenshtein中所有字符串的集合 基于所选语言的字母表的两个距离

学分

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

推荐PyPI第三方库


热门话题
java本机方法的源代码可用吗?   java如何使父方法抛出异常?   java Android以编程方式设置不同屏幕大小/密度的布局   java如何使用一个变量来管理所有客户端请求   java输入一个txt文件,每行有一组数字   json java从jsonobject获取jsonarray错误   java将一个(WAV)写入一个文件只会说一个单词(最后一个单词)   java Telnet忽略原始字节   proguard java。运行桌面应用程序时出现lang.VerifyError   java用左键移动JLabel?   java如何在jText区域验证选项卡?   文件服务器客户端Javasocket编程中的字符串搜索   java省略了JSTL中的最后一个逗号<c:out>   java如何找到if或else代码已执行的次数?   java JavaScript WebSocket send()方法未执行   浮点数声明上的java标识符预期错误   java这是指二进制搜索算法吗?   编译mod at:reobfJar java时的minecraft问题。util。拉链ZipException:重复条目   java检测特定的震动运动(如图所示:D)