Filter PyEnchant:用英语单词替换对互联网友好的单词

Filter PyEnchant:用英语单词替换对互联网友好的单词,filter,pyenchant,pel,Filter,Pyenchant,Pel,我想识别像“soooooooo”这样的单词,并在拼写检查中将它们替换为“so”。我怎样才能做到这一点?我应该写什么(意味着过滤器等),在哪里调整代码 谢谢 您可以使用store_替换,但是我的理解是store_替换需要由底层提供者实现。如果您使用实现它的提供程序Aspell,您可以看到它是这样工作的:(注意,您需要安装Aspell及其字典才能看到它的工作) 导入附魔 #找经纪人。 b=enchant.Broker() #在代理上设置顺序,以便首先使用aspell。 b、 设置顺序(“en_US”

我想识别像“soooooooo”这样的单词,并在拼写检查中将它们替换为“so”。我怎样才能做到这一点?我应该写什么(意味着过滤器等),在哪里调整代码


谢谢

您可以使用store_替换,但是我的理解是store_替换需要由底层提供者实现。如果您使用实现它的提供程序Aspell,您可以看到它是这样工作的:(注意,您需要安装Aspell及其字典才能看到它的工作)

导入附魔
#找经纪人。
b=enchant.Broker()
#在代理上设置顺序,以便首先使用aspell。
b、 设置顺序(“en_US”、“aspell、myspell”)
#打印代理的描述以查看可用的内容。
打印(b.描述())
#买一本美国英语词典。
d=b.请求命令(“en_US”)
#打印美国英语词典的提供者。
打印(d.provider)
#测试字符串。
s='soooooooo'
#如果我们知道这个词不在字典中,我们会检查它是否不在字典中。
打印(d.支票)
#在更改任何内容之前,打印字符串的建议。
印刷品(建议)
#将我们的线的中继存储为“so”。
d、 存储单元更换件(“so”)
#再次打印我们的建议,并查看列表前面的“so”。
印刷品(建议)
[, , ]
假的
Soo Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho soar Soath Soos Soom sooty sooty sooty sooty sooty sootier sough sough Soop Soop Soop Soop Soo Soo Soo Soo sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow SOS SOS Soo Soo Soo Soo Soo Soo SO SO SO“SOs”、“SRO”、“Soc”、“Sol”、“Son”、“sob”、“Soc”、“sod”、“Sol”、“sot”、“boo”、“coo”、“foo”、“goo”、“loo”、“moo”、“ooh”、“too”、“woo”、“CEO”、“S”“SSA”、“SSE”、“SSS”、“SSW”、“Sue”、“Zoe”、“saw”、“say”、“sea”、“see”、“sew”、“Sue”、“xor”、“Snow”、“Sosa”、“boos”、“bozo”、“coos”、“loos”、“moos”、“oohs”、“ooze”、“oozy”、“orzo”、“ouzo”、“sago”、“scow”、“sloe”、“slow”、“slow”、“Snow”、“Snow”、“Stude”]
Soo Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho Soho soar Soath Soos Soom sooty sooty sooty sooty sooty sootier sough sough Soop Soop Soop Soop Soo Soo Soo Soo sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow sow SOS SOS Soo Soo Soo Soo Soo Soo so so so“SOs”、“SRO”、“Soc”、“Sol”、“Son”、“sob”、“Soc”、“sod”、“Sol”、“sot”、“boo”、“coo”、“foo”、“goo”、“loo”、“moo”、“ooh”、“too”、“woo”、“CEO”、“S”、“SSA”、“SSE”、“SSS”、“SSW”、“Sue”、“Zoe”、“saw”、“say”、“sea”、“see”、“Sue”、“xor”、“Snow”、“Sony”、“Sosa”]

理想情况下,我会为同样的代码编写一个正则表达式,但在哪里调整代码呢?是的。Apell实现了store_replacement()…但大多数情况下,挑战在于Aspell不会推荐我的固定词(例如:使用store_replacement(“soooooo”,“so”)作为第一个建议。它可能是第二个。在这种情况下,我有没有办法增加我的建议集的权重,这样它总是出现在建议中的第一位?根据我的经验,如果单词在字典中,建议的替换将排在第二位,否则它将排在第一位。我刚刚用store_替换进行了测试(“sooooo”,“so”)是第一个词。你能给我一个例子,说明它什么时候排在第二位,不在字典里,即print(d.check(s))为False,建议的替换词排在第二位吗?另一个测试是当被测试的词不是第一个建议,建议的替换词排在第二位时?
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 = 'sooooooooooooooo'
# 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, 'so')
# 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>
False
['SO', 'so', 'spoor', 'sou', 'sow', 'soy', 'zoo', 'Soho', 'Soto', 'solo', 'soon', 'soot', 'shoo', 'soar', 'sour', 'shoos', 'sooth', 'sooty', 'Si', 'sootier', 'sough', 'SOP', 'sop', 'S', 'poo', 's', 'sooner', 'soothe', 'sorrow', 'Sir', 'Sui', 'sci', 'sir', 'poos', 'silo', 'soap', 'soil', 'soup', 'SA', 'SE', 'SS', 'SW', 'Se', 'soother', 'SOB', 'SOS', 'SOs', 'SRO', 'Soc', 'Sol', 'Son', 'sob', 'soc', 'sod', 'sol', 'son', 'sot', 'boo', 'coo', 'foo', 'goo', 'loo', 'moo', 'ooh', 'too', 'woo', 'CEO', "S's", 'SSA', 'SSE', 'SSS', 'SSW', 'Sue', 'Zoe', 'saw', 'say', 'sea', 'see', 'sew', 'sue', 'xor', 'Snow', 'Sony', 'Sosa', 'boos', 'bozo', 'coos', 'loos', 'moos', 'oohs', 'ooze', 'oozy', 'orzo', 'ouzo', 'sago', 'scow', 'sloe', 'slow', 'snow', 'soak']
['so', 'SO', 'spoor', 'sou', 'sow', 'soy', 'zoo', 'Soho', 'Soto', 'solo', 'soon', 'soot', 'shoo', 'soar', 'sour', 'shoos', 'sooth', 'sooty', 'Si', 'sootier', 'sough', 'SOP', 'sop', 'S', 'poo', 's', 'sooner', 'soothe', 'sorrow', 'Sir', 'Sui', 'sci', 'sir', 'poos', 'silo', 'soap', 'soil', 'soup', 'SA', 'SE', 'SS', 'SW', 'Se', 'soother', 'SOB', 'SOS', 'SOs', 'SRO', 'Soc', 'Sol', 'Son', 'sob', 'soc', 'sod', 'sol', 'son', 'sot', 'boo', 'coo', 'foo', 'goo', 'loo', 'moo', 'ooh', 'too', 'woo', 'CEO', "S's", 'SSA', 'SSE', 'SSS', 'SSW', 'Sue', 'Zoe', 'saw', 'say', 'sea', 'see', 'sew', 'sue', 'xor', 'Snow', 'Sony', 'Sosa']