gog*_*sca 5 python nltk pyenchant enchant
附魔图书馆的不同结果(附魔1.6.6)
在MAC OSX 10.11.12(El Capitan)中:
>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.suggest("prfomnc")
['performance', 'prominence', 'preform', 'perform']
Run Code Online (Sandbox Code Playgroud)
在Linux Ubuntu 14.04 LTS中:
>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.suggest("prfomnc")
['princedom', 'preferment', 'preform']
Run Code Online (Sandbox Code Playgroud)
任何想法为什么我在NLTK中获得"建议"功能的不同结果和其他替代方案?
苹果系统
>>> enchant.list_dicts()
[('de_DE', <Enchant: Myspell Provider>), ('en_AU', <Enchant: Myspell Provider>), ('en_GB', <Enchant: Myspell Provider>), ('en_US', <Enchant: Myspell Provider>), ('fr_FR', <Enchant: Myspell Provider>)]
Run Code Online (Sandbox Code Playgroud)
Ubuntu的
>>> enchant.list_dicts()
[('en', <Enchant: Aspell Provider>), ('en_CA', <Enchant: Aspell Provider>), ('en_GB', <Enchant: Aspell Provider>), ('en_US', <Enchant: Aspell Provider>), ('en_ZA', <Enchant: Myspell Provider>), ('en_AU', <Enchant: Myspell Provider>)]
Run Code Online (Sandbox Code Playgroud)
在我的Ubuntu尝试过:
>>> b = enchant.Broker()
>>> b.set_ordering("en_US","myspell,aspell")
>>> b.set_ordering("*","aspell,myspell")
>>> b.request_dict("en_US").provider
<Enchant: Myspell Provider>
>>> b.request_dict("en_GB").provider
<Enchant: Aspell Provider>
>>> d.suggest("prfomnc")
['princedom', 'preferment', 'preform']
Run Code Online (Sandbox Code Playgroud)
但结果仍然相同
该enchant库不是拼写纠正库。相反,它是一个聚合器,寻找与各种支持系统的接口。
从文档中:
Enchant 能够同时加载多个后端。目前,Enchant 有 8 个后端:
Run Code Online (Sandbox Code Playgroud)Aspell/Pspell (intends to replace Ispell) Ispell (old as sin, could be interpreted as a defacto standard) MySpell/Hunspell (an OOo project, also used by Mozilla) Uspell (primarily Yiddish, Hebrew, and Eastern European languages - hosted in AbiWord's CVS under the module "uspell") Hspell (Hebrew) Zemberek (Turkish) Voikko (Finnish) AppleSpell (Mac OSX)
注意到最后一张了吗?
我怀疑,无需花费任何精力来确认,您会得到不同的结果,因为您的 MacOS 系统和 Linux 系统安装了不同的拼写软件,或者它们可能安装了相同的软件,但它们在系统中的顺序可能不同。所使用的搜索路径enchant。