2012-12-18 54 views
0

我想检查Python中的字符串是否是使用PyEnchant的单词集合。
例如,我想以某种方式检查一个连接字符串,是一个字还是不:检查单词集合(pyenchant)

eng = enchant.Dict("en_US") 
eng.check("Applebanana") 

我知道这将返回假的,但我希望它返回true,因为苹果+香蕉是由PyEnchant合法的话。

+3

合并后的合法单词也有无数的合法单词组合。无数人会看起来像细微的拼写错误。然后有组合,当分裂*不同*成为不同的单词。曾听说过'expertsexchange.com'?我们在这里谈论的是多少个词汇?您可能必须手动尝试不同的分割,然后针对pyenchant测试这些词。 –

+0

感谢您的输入。我认为pyenchant库有一些功能,检查...废话! – taesu

回答

1

如果你限制自己的话从其他两个词结合起来,你可以自己去查组合:

>>> s = "applebanana" 
>>> splits = [(s[:i], s[i:]) for i in range(1,len(s))] 
>>> splits 
[('a', 'pplebanana'), ('ap', 'plebanana'), ('app', 'lebanana'), 
('appl', 'ebanana'), ('apple', 'banana'), ('appleb', 'anana'), 
('appleba', 'nana'), ('appleban', 'ana'), ('applebana', 'na'), 
('applebanan', 'a')] 
>>> any((eng.check(item[0]) and eng.check(item[1])) for item in splits) 
True 

当然,你可以扩展到两个以上,但是这应该给你的总体思路你在哪里。

+0

谢谢。 很多复杂的,然后我认为它会。 – taesu