我正在寻找一种在python中创建函数的方法,在这里传入一个字符串,它返回它是否拼写正确。我不想检查字典。相反,我希望它检查谷歌的拼写建议。这样,名人姓名和其他各种专有名词将被视为拼写正确。
这是我到目前为止的地方。它大部分时间都有效,但它与一些名人名字混在一起。例如,“cee lo green”或“posner”之类的内容被标记为不正确。
import httplib
import xml.dom.minidom
data = """
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">
<text> %s </text>
</spellrequest>
"""
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;
答案 0 :(得分:10)
Peter Norvig告诉你如何实施spell checker in Python.
答案 1 :(得分:8)
而不是坚持谷歌先生,试试其他大家伙。
如果您真的想坚持使用可以计算网页请求的搜索引擎,Yahoo和Bing会提供一些出色的功能。雅虎使用YQL表直接提供拼写检查服务(免费:5000请求/天和非商业)。
你有很多Python API可以做很多相似的魔法,包括你提到的名词(有时可能会转变 - 毕竟它基于概率)
所以,在第二种情况下,你有一个很好的清单(完全免费)
我希望他们能够清楚地了解事情的运作方式。
实际上,拼写检查涉及机器学习,AI,NLP等领域中非常复杂的机制。因此,像谷歌/雅虎这样的公司并不真正提供他们的完全免费的。