2012-12-18 51 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