0

我发现这个链接http://machinespirit.net/acegiak/2012/07/10/qad-normalized-google-distance/#comments这似乎让我对 python 代码感兴趣。我做了什么,我创建了一个新的 g1.py 文件,将代码复制到其中。然后我 chmod 755 然后 ./g1.py 我得到了以下错误。

./g1.py test test1
Traceback (most recent call last):
  File "./g1.py", line 2, in <module>
    from google import gsearch
ImportError: No module named google
4

2 回答 2

3

我是链接文档的作者。该代码片段使用内部 google 模块,该模块不公开,旨在显示工作中的算法,而不是功能的完整实现。

此后,我更新了文档以包含 gsearch 函数的基本精简版本,添加此功能的完整代码如下所示:

#!/usr/bin/env python
from google import gsearch
import math,sys
import json
import urllib

def gsearch(searchfor):
  query = urllib.urlencode({'q': searchfor})
  url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
  search_response = urllib.urlopen(url)
  search_results = search_response.read()
  results = json.loads(search_results)
  data = results['responseData']
  return data

args = sys.argv[1:]
m = 45000000000
if len(args) != 2:
        print "need two words as arguments"
        exit
n0 = int(gsearch(args[0])['cursor']['estimatedResultCount'])
n1 = int(gsearch(args[1])['cursor']['estimatedResultCount'])
n2 = int(gsearch(args[0]+" "+args[1])['cursor']['estimatedResultCount'])
l1 = max(math.log10(n0),math.log10(n1))-math.log10(n2)
l2 = math.log10(m)-min(math.log10(n0),math.log10(n1))
distance = l1/l2
print distance
于 2013-08-05T01:46:14.937 回答
1

您必须安装googlePython 模块。我没有找到任何这样命名的模块。我认为所需的模块是http://code.google.com/p/pygoogle/。因此,您可能必须将第一个导入替换为:

from pygoogle import search

或者询问帖子作者他从哪里获得他的模块。

于 2013-08-04T17:46:52.737 回答