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

时间:2011-12-08 09:28:02

标签: 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;

2 个答案:

答案 0 :(得分:10)

Peter Norvig告诉你如何实施spell checker in Python.

答案 1 :(得分:8)

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

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

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

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

    1. GNU - Aspell(甚至得到了python绑定)
    2. PyEnchant
    3. Whoosh(它比拼写检查更多,但我认为它有一些优势。)
    4. 我希望他们能够清楚地了解事情的运作方式。

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