如何使用google的“did you mean?”实现python拼写检查器

2024-05-26 21:53:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种在python中创建函数的方法,在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;

Tags: totextimportdatareturnxml名字con
2条回答

Peter Norvig告诉您如何实现spell checker in Python.

与其坚持谷歌,不如试试其他大人物。

  1. 如果您真的想坚持使用计算页面请求的搜索引擎,YahooBing提供了一些优秀的特性。雅虎正在使用YQL表直接提供拼写检查服务(免费:每天5000个请求和非商业)。

  2. 你有很多Python API,它们能够做很多类似的魔术,包括你提到的名词(有时可能会掉头——毕竟是基于概率的某处)

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

  1. GNU - Aspell(甚至有python绑定)
  2. PyEnchant
  3. Whoosh(它做的远不止拼写检查,但我认为它有一些优势。)

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

实际上拼写检查涉及机器学习、人工智能、自然语言处理等领域非常复杂的机制。。等等更多。因此,像Google/Yahoo这样的公司并没有真正提供完全免费的API。

相关问题 更多 >

    热门问题