我最近一直在尝试创建一个Python程序,你可以给它一个单词,并列出它的所有同义词。这是我正在使用的代码:
from urllib import quote_plus
import urllib2
import re
def get_search_result(key):
page = urllib2.urlopen('http://www.synonyms.net/synonym/%s'%quote_plus(key)).read()
words_ = []
words = []
for i in [re.sub('<.*?>', '', i) for i in re.findall('Synonyms: (.*?)Antonyms', page)]:
words_.extend(i.split(', '))
for i in words_:
if i not in words:
words.append(i)
return words
if __name__ == '__main__':
res = get_search_result('sack')
print res, len(res)
问题是,虽然它有效,但它的速度却非常慢。它需要一分钟才能回答我。我的问题:有更好的方法吗?现在,它使用synonyms.net并检查页面的html。问题是,synonyms.net本身很慢。
我调查了synonym.net API。它似乎正是我所需要的,因为它非常快(在0.23秒内返回列表)。唯一的问题是,在页面底部的小字体中,它说“同义词API服务每天最多可以使用1000个查询”。现在,正如他们所说,如果你购买产品,这就被规避了。问题是买东西需要钱,我真的不想每月支付10美元给一个程序给我同义词。
我也研究过http://thesaurus.com。因为代码很灵活,所以我快速修改它以使用它。它更好,只需10秒钟就可以响应。但是,这仍然不合适。只要在网站上进行快速搜索证明,Thesaurus.com就没有API可供使用。现在,最终的解决方案,即保证工作的解决方案,就是制作我自己的同义词列表,然后有一个程序来解析它。但是,这个选项看起来很混乱而且不是很有利。有没有人有任何替代品,至少会比10秒更快?
提前致谢!
答案 0 :(得分:0)
重新发表评论,因为它似乎可以解决问题,
thesaurus.com在m.dictionary.com/t也有一个m版本,使用它可以加快互联网流量,使用移动版本也可以更轻松地解析HTML。