我正在寻找一种方法在python中创建一个函数,你传入一个字符串,它返回它是否拼写正确.我不想检查字典.相反,我希望它检查谷歌的拼写建议.这样,名人姓名和其他各种专有名词将被视为拼写正确.
这是我到目前为止的地方.它大部分时间都有效,但它与一些名人名字混在一起.例如,"cee lo green"或"posner"之类的内容被标记为不正确.
import httplib import xml.dom.minidom data = """""" def spellCheck(word_to_spell): con = httplib.HTTPSConnection("www.google.com") con.request("POST", "/tbproxy/spell?lang=en", data % word_to_spell) response = con.getresponse() dom = xml.dom.minidom.parseString(response.read()) dom_data = dom.getElementsByTagName('spellresult')[0] if dom_data.childNodes: for child_node in dom_data.childNodes: result = child_node.firstChild.data.split() for word in result: if word_to_spell.upper() == word.upper(): return True; return False; else: return True; %s
duffymo.. 10
Peter Norvig告诉你如何用Python实现拼写检查.
Peter Norvig告诉你如何用Python实现拼写检查.
尝试其他大家伙,而不是坚持谷歌先生.
如果你真的想坚持使用可以计算页面请求的搜索引擎,那么Yahoo和Bing就会提供一些出色的功能.雅虎使用YQL表直接提供拼写检查服务(免费:5000请求/天和非商业).
你有很多Python API可以做很多类似的魔法,包括你提到的名词(有时可能转过来 - 毕竟它基于概率)
所以,在第二种情况下,你有一个很好的清单(完全免费)
GNU - Aspell(甚至得到了python绑定)
PyEnchant
飞快(它比拼写检查更多,但我认为它有一些优势.)
我希望他们能够让你清楚地知道事情是如何运作的.
实际上,拼写检查涉及机器学习,AI,NLP等领域中非常复杂的机制.因此,像谷歌/雅虎这样的公司并不真正完全免费提供他们的API .