python PyEnchant(拼写检查)
本文主要是记录了一下pyenchant包的安装以及简单使用。这个包主要功能是对英语单词进行拼写检查,并可以对拼写错误的单词推荐一些可能的正确单词。
1 installing PyEnchant
使用pip直接安装即可,指令如下:
pip install pyenchant
使用上述指令,如果安装没有错误就是安装成功了,一般情况下(mac、ubuntu等系统)是没有任何问题的。但是在亚马逊的EC2机器上,使用上述指令会提示错误。主要原因是EC2系统上缺少enchant
组建,这里就需要在EC2机器上安装该组建。使用如下指令:
sudo yum install enchant
安装好enchant
之后,在使用pip安装pyenchant
即可。但是在python中使用enchant
时,会发现刚刚装好的enchant
没有安装默认字典。这就需要另外安装常用英语字典,来支持pyenchant
的正常使用,使用如下指令:
sudo yum install aspell-en
sudo yum install enchant-aspell
2 基础用法
2.1 创建和使用Dictionary Object
在PyEnchant中最主要的就是Dict
对象,我们可以使用它来检查单词的拼写是否正确,同时还可以对拼写错误的单词提供几个可能的正确拼写。
首先介绍如何创建Dict
对象,并用其检查某个单词的拼写:
>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check("Hello")
True
>>> d.check("Helo")
False
创建Dict
对象可以使用如下方式:
方法 | 描述 |
---|---|
d = enchant.Dict(language) | 使用指定语言创建Dict对象 |
d = enchant.request_dict(language) | 使用指定语言创建Dict对象 |
d = enchant.request_pwl_dict(filename) | 只用本地文件中的词汇创建Dict对象 |
d = enchant.DictWithPWL(language, filename) | 将内置某语言以及本地文件中的词汇合并来创建Dict对象 |
注意上述方法中用到了本地文件filename
,文件中每一行只存放一个单词。
enchant模块还提供了如下几个关于语言的方法:
方法 | 描述 |
---|---|
enchant.dict_exits(language) | 查看当前enchant模块是否支持某种语言 |
enchant.list_languages() | 查看当前enchant模块支持的所有语言 |
Dict
对象有如下方法与属性方便用户使用:
方法or属性 | 描述 |
---|---|
d = enchant.Dict(language) | 指定语言创建一个Dict对象 |
d.tag | 当前Dict使用的语言 |
d.check(word) | 检查word的拼写是否正确 |
d.suggest(word) | 对拼写错误的word提供几个正确拼写的单词 |
>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.tag
'en_US'
>>> d.check("Hello")
True
>>> d.check("Helo")
False
>>> d.suggest("helo")
['hole', 'hello', 'helot', 'halo', 'hero', 'hell', 'held', 'helm', 'help', 'he lo']
>>> enchant.dict_exists("aa")
False
>>> enchant.dict_exists("en_US")
True
>>> enchant.list_languages()
['de_DE', 'en_AU', 'en_GB', 'en_US', 'fr_FR']
2.2 检查一段文本的拼写
这里使用enchant.checker
中的SpellChecker
类来解决对一整段文本中的单词进行拼写检查
>>> from enchant.checker import SpellChecker
>>> chkr = SpellChecker("en_US")
>>> chkr.set_text("This is sme sample txt with erors.")
>>> for err in chkr:
... print "ERROR", err.word
...
ERROR sme
ERROR txt
ERROR erors
2.3 英语分词器(Tokenization)
将英语文本进行分词,返回结果格式(word, pos),其中pos是word在整个文本中出现的位置
>>> from enchant.tokenize import get_tokenizer
>>> tknzr = get_tokenizer("en_US")
>>> [w for w in tknzr("this is some simple text.")]
[('this', 0), ('is', 5), ('some', 8), ('simple', 13), ('text', 20)]
3 更多enchant功能与用法,请查看如下链接
http://pythonhosted.org/pyenchant/tutorial.html
作者:happy_19
链接:https://www.jianshu.com/p/96c01666aeeb
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
python PyEnchant(拼写检查)相关推荐
- 【小实验讲解】贝叶斯拼写检查器
贝叶斯拼写检查器 python代码 拼写检查器的代码+注释 python代码 big.txt只是一个语料库大家网上可以找得到. 拼写检查器的代码+注释 # ##求解: argmaxc P(c|w) & ...
- python代码大全p-21行Python代码实现拼写检查器
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling. 下面是用21行python代码实现的一个简易但是具备 ...
- Python简单的拼写检查
大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling. 下面是用python代码实现的一个简易但是具备完整功能的拼 ...
- python拼写错误20几分钟怎么办_Python | 21行轻松搞定拼写检查器
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling. 下面是用21行python代码实现的一个简易但是具备 ...
- 怎样写一个拼写检查器-贝叶斯-python
怎样写一个拼写检查器 Peter Norvig 翻译: Eric You XU 原版:http://norvig.com/spell-correct.html 翻译:http://blog.youxu ...
- Python写一个简洁拼写检查器
网上看到的一篇神文,利用的是朴素贝叶斯模型实现了一个简单的拼写检查器. 英文原文链接见这里,中文翻译如下 =============================================== ...
- 20来行的Python拼写检查器
近来Google的人工智能围棋机器人AlphaGo击败了欧洲围棋冠军樊麾二段(原中国国少队队员),引起了围棋界的轩然大波.AlphaGo采用的是机器学习加上蒙特卡洛算法的方式.蒙特卡洛算法早有研读,而 ...
- 贝叶斯推断及其互联网应用(三):拼写检查
(这个系列的第一部分介绍了贝叶斯定理,第二部分介绍了如何过滤垃圾邮件,今天是第三部分.) 使用Google的时候,如果你拼错一个单词,它会提醒你正确的拼法. 比如,你不小心输入了seperate. G ...
- Lucene4.3.1 拼写检查SpellChecker
2019独角兽企业重金招聘Python工程师标准>>> org.apache.lucene.search.spell Class SpellChecker java.lang.Ob ...
- solr创建索引_Solr:创建拼写检查器
solr创建索引 在上一篇文章中,我谈到了Solr Spellchecker的工作原理,然后向您展示了其性能的一些测试结果. 现在,我们将看到另一种拼写检查方法. 与其他方法一样,此方法使用两步过程. ...
最新文章
- CaseStudy(showcase)界面篇-导出xaml以及放入Blend的技巧
- mac 安装使用 webp 来压缩图片
- Linux通过端口查找tomcat的路径
- linux 增加虚拟设备,第一篇Zstack之创建虚拟机
- 独特的 Erlang -- Eralng 学习笔记 (1)
- usb转ttl测试软件,usb转ttl驱动
- CwRsync | Windows与Windows之间同步备份配置详解
- java万年历系统的设计,基于安卓Android平台万年历系统设计与实现
- 【深度学习】深度学习:技术原理、迭代路径与局限
- 文本挖掘 包含中英文数据预处理以及分析
- 2022-2028年全球玻璃棉板收入年复合增长率CAGR为 5.0%
- 重命名Active Directory域名
- 让机器认知中文实体 — 复旦大学知识工场发布中文实体识别与链接服务
- 什么是PCB加工中树脂塞孔工艺?
- NVIDIA相关资料(一)——Deepstream相关知识
- DPI、PPI、DP、PX 的详细计算方法及算法来源是什么
- 出主意:阻止了对方倒苦水(错误行为)
- AC_AttitudeControl_Heli.cpp的AC_AttitudeControl_Heli::rate_target_to_motor_yaw函数代码分析
- 提取数据以及清洗数据
- 淘宝基础版店招首页通栏代码