我正在寻找一种方法在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;
Run Code Online (Sandbox Code Playgroud)
尝试其他大家伙,而不是坚持谷歌先生.
如果你真的想坚持使用可以计算页面请求的搜索引擎,那么Yahoo和Bing就会提供一些出色的功能.雅虎使用YQL表直接提供拼写检查服务(免费:5000请求/天和非商业).
你有很多Python API可以做很多类似的魔法,包括你提到的名词(有时可能转过来 - 毕竟它基于概率)
所以,在第二种情况下,你有一个很好的清单(完全免费)
我希望他们能够让你清楚地知道事情是如何运作的.
实际上,拼写检查涉及机器学习,AI,NLP等领域中非常复杂的机制.因此,像谷歌/雅虎这样的公司并不真正完全免费提供他们的API .