Python - PyEnchant 英文单字拼写检查套件参考笔记

Python - PyEnchant 英文单字拼写检查套件参考笔记

参考资料

参考资料:

说明

当初会写这篇参考笔记,主要是因为,这篇教学文(python PyEnchant(拼写检查)),是大陆人写的文章,因为不太喜欢看到简体字和大陆用语,所以我就自己整理了繁体中文的版本(台湾价值w),再把里面的大陆用语转换成台湾用语(比如说把"对象"换成"物件")(先说我不是专业的,用词错误请不要喷我w),增加或删减一些文字,以方便肉眼阅读XD。

特此撰写本篇文章作为纪录文件,用以方便後续有需要的时候,可以快速的重复查阅,虽然後面比较没有什麽机会再用到,但也算是一个还不错的经验。

简介

本文主要是记录 pyenchant 套件的安装以及使用。这个套件的主要功能是对英文单字进行拼写检查,并可以对拼写错误的单词推荐一些可能的正确单词。

安装 PyEnchant

使用 pip3 直接安装即可,指令如下:

pip3 install pyenchant

使用上述指令,如果安装没有错误就是安装成功了,一般情况下(mac、ubuntu等系统)是没有任何问题的。

基础用法

创建和使用 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']

检查一段文字的拼写

这里使用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

英语分词器(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)]

<<:  【Day11】数据展示元件 - Badge

>>:  Day 12 - 阵列 b

【少女人妻的30天Elastic】Day 29 : App Search_API 介绍与应用_Curations

Aloha!我是少女人妻 Uerica!这个周末朋友要求婚了~朋友前阵子喝了一点然後问我婚姻的感觉...

[ 卡卡 DAY 18 ] - React Native animated 来简单使用 translate 效果

记得第一次使用到 css 的 animation 跟 transform 系列效果 做了很多厉害的...

Bloom效果,又或是高光效果

文章内使用Unity 2019 LTS 目标 Bloom效果 Bloom 以下这张图片也是一个常见...

django入门(六) — 简单范例(4)-资料模型与填充程序

建立资料表 stock/models.py class Stock(models.Model): n...

k8s prometheus 监控多个MySql -盖完後的新增

【YC的寻路青春】 上一篇已经有点太多了 容许我分两篇 不然有点爆炸 如果盖完之後 要增新的话 1....