首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PyEnchant创建自定义过滤器

使用PyEnchant创建自定义过滤器
EN

Stack Overflow用户
提问于 2017-06-19 09:34:28
回答 1查看 593关注 0票数 2

我刚开始使用PyEnchant库。

使用PyEnchant,我想编写一个自定义代码:

  1. 忽略某些单词,如“互联网俚语”中的拼写检查-可能是一个自定义过滤器可以有帮助吗?
  2. 将像打算这样的缩写替换为“将要”

如果有人能帮我解决这个问题,那将是很大的帮助。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-06-26 21:39:06

对于1)使用个人单词列表( http://pythonhosted.org/pyenchant/tutorial.html#personal-word-lists ),将您的单词添加到给定语言的此处,它们将被忽略。

2)请参见我对您的另一个问题PyEnchant : Replace internet friendly words with a english word的回答,但在本例中,这个单词是一个字典单词https://en.oxforddictionaries.com/definition/gonna,因此运行代码:

代码语言:javascript
复制
import enchant
# Get the broker.
b = enchant.Broker() 
# Set the ordering on the broker so aspell gets used first.
b.set_ordering("en_US","aspell,myspell") 
# Print description of broker just to see what's available.
print (b.describe())
# Get an US English dictionary.
d=b.request_dict("en_US")
# Print the provider of the US English dictionary. 
print (d.provider)
# A test string.
s = 'gonna'
# We will check the word is not in the dictionary not needed if we know it isn't.
print (d.check(s))
# Print suggestions for the string before we change anything.
print (d.suggest(s))
# Store a relacement for our string as "so".
d.store_replacement(s, 'going to')
# Print our suggestions again and see "so" appears at the front of the list.
print (d.suggest(s))


[<Enchant: Aspell Provider>, <Enchant: Ispell Provider>, <Enchant: Myspell Provider>, <Enchant: Hspell Provider>]
<Enchant: Aspell Provider>
True
['gonna', 'Gina', 'Ginny', 'Joanna', 'Conn', 'Gena', 'gone', 'goon', 'gown', 'Donna', 'Genoa', 'Ghana', 'Janna', 'Jenna', 'going', 'goner', 'gunny', 'gin', 'Nona', 'Gienah', 'Goiania', 'Guiana', 'Guinea', 'Jinnah', 'gonad', 'guinea', 'Joan', 'koan', 'Conan', 'Gino', 'Goa', 'Golan', 'Joann', 'Jonah', 'jinn', 'Glenna', 'goons', 'gowns', 'CNN', 'Gen', 'Jon', 'con', 'gen', 'gun', 'Conner', 'Connie', 'Joanne', 'Johnny', 'cornea', 'gong', 'gonk', 'gunner', 'johnny', 'Anna', 'Bonn', 'Dona', 'Donn', 'Goya', 'Mona', 'dona', 'Gene', 'Gwyn', 'Jana', 'John', 'Joni', 'coin', 'cone', 'cony', 'coon', 'corn', 'gain', 'gene', 'john', 'join', 'conga', 'ganja', 'gonzo', "goon's", "gown's"]
['gonna', 'going to', 'Gina', 'Ginny', 'Joanna', 'Conn', 'Gena', 'gone', 'goon', 'gown', 'Donna', 'Genoa', 'Ghana', 'Janna', 'Jenna', 'going', 'goner', 'gunny', 'gin', 'Nona', 'Gienah', 'Goiania', 'Guiana', 'Guinea', 'Jinnah', 'gonad', 'guinea', 'Joan', 'koan', 'Conan', 'Gino', 'Goa', 'Golan', 'Joann', 'Jonah', 'jinn', 'Glenna', 'goons', 'gowns', 'CNN', 'Gen', 'Jon', 'con', 'gen', 'gun', 'Conner', 'Connie', 'Joanne', 'Johnny', 'cornea', 'gong', 'gonk', 'gunner', 'johnny', 'Anna', 'Bonn', 'Dona', 'Donn', 'Goya', 'Mona', 'dona', 'Gene', 'Gwyn', 'Jana', 'John', 'Joni', 'coin', 'cone', 'cony', 'coon', 'corn', 'gain', 'gene', 'john', 'join', 'conga', 'ganja', 'gonzo', "goon's", "gown's"]

打印正确的打印(d.check(s))不是假的。

在这个例子中,这是很重要的,因为它是一个字典单词,单词本身出现在列表的前面,而我们存储的替换是第二位的。因此,如果您想自动替换单词,您必须测试它是否是一个单词,那么如果它是使用列表中的第二项或类似的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44626957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档