如何使用google实现python拼写检查"你的意思是?"

Sea*_*see 11 python api

我正在寻找一种方法在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)

duf*_*ymo 10

Peter Norvig告诉你如何用Python实现拼写检查.

  • 你不明白它......统计数据对你没什么意义吗?不,它不会发给谷歌.我建议你的方式是不正确的; 这将是一个更好的方式. (4认同)

Sur*_*rya 8

尝试其他大家伙,而不是坚持谷歌先生.

  1. 如果你真的想坚持使用可以计算页面请求的搜索引擎,那么YahooBing就会提供一些出色的功能.雅虎使用YQL表直接提供拼写检查服务(免费:5000请求/天和非商业).

  2. 你有很多Python API可以做很多类似的魔法,包括你提到的名词(有时可能转过来 - 毕竟它基于概率)

所以,在第二种情况下,你有一个很好的清单(完全免费)

  1. GNU - Aspell(甚至得到了python绑定)
  2. PyEnchant
  3. 飞快(它比拼写检查更多,但我认为它有一些优势.)

我希望他们能够让你清楚地知道事情是如何运作的.

实际上,拼写检查涉及机器学习,AI,NLP等领域中非常复杂的机制.因此,像谷歌/雅虎这样的公司并不真正完全免费提供他们的API .