Python 以词代同义词

Python 以词代同义词,python,regex,api,text-processing,substitution,Python,Regex,Api,Text Processing,Substitution,我最近一直在尝试创建一个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_ = [] word

我最近一直在尝试创建一个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:&nbsp;(.*?)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)
从urllib导入quote\u plus
导入urllib2
进口稀土
def获取搜索结果(键):
page=urlib2.urlopen('http://www.synonyms.net/synonym/%s“%quote_plus(key)).read()
单词
单词=[]
对于[re.sub(“”,,,i)中的i,对于[re.findall('同义词:(.*)反义词,第页)]中的i:
单词扩展(i.split(','))
对于我来说,我的话是:
如果我不能用语言表达:
附(一)
回话
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
res=获取搜索结果('sack')
打印分辨率,透镜(分辨率)
问题是,当它工作时,它的速度非常慢。它花了一分钟才为我回答。我的问题是:有没有更好的方法?现在,它使用synonyms.net并检查页面的html。问题是,synonyms.net本身速度很慢

我已经调查过了。它似乎正是我所需要的,因为它非常快(在0.23秒内返回列表)。唯一的问题是,在页面的底部,用小字体写着“同义词API服务每天可以免费使用多达1000个查询”。现在,正如他们所说,如果你购买产品,这是可以避免的。问题是买东西需要钱,我真的不想每月花10美元买一个给我同义词的程序

我也调查过。因为代码很灵活,所以我很快修改了它以使用它。更好的是,只需10秒即可做出响应。然而,这仍然不合适。Thesaurus.com没有API可供使用,因为网站上的快速搜索证明了这一点。现在,最终的解决方案,保证有效的解决方案,是制作我自己的同义词列表,然后有一个程序来解析它。然而,这一选择似乎很混乱,也不是很有利。有没有人有其他选择,至少比10秒快


提前谢谢

重新发布我的评论,因为它似乎解决了问题


thesaurus.com在上也有一个m版本,使用它可以加快互联网流量,使用移动版本也可以更轻松地解析HTML。

重新发布我的评论,因为它似乎可以解决这个问题


thesaurus.com在上也有一个m版本,使用它可以加快互联网流量,使用移动版本也可以更轻松地解析HTML。

我的第一条建议:。有很多Python HTML解析库可用。同义词肯定不会以有意义的方式很快改变。那么,为什么不购买一个包含此信息的文本文档,并对该文本文件执行所有查询呢?此外,如果您需要扩大规模以对大量单词执行同义词查询,那么使用它似乎是一件完美的事情。因此,您希望网站为您的应用程序提供服务,而不向您收取任何费用,这不会为网站所有者带来收入?我并不是说寻找单词的同义词是一项主要任务(其实不是),但没有什么是免费的。你应该考虑使用离线词典而不是在线服务。所以你正在寻找一本免费词典。我不明白这是一个Python问题。@Nox我不知道你所说的“浏览器”是什么意思。您希望下载WordNet数据库,然后在应用程序中使用它(不管它是在服务器上还是在客户机上)。请参阅以下内容。我的第一条建议:。有很多Python HTML解析库可用。同义词肯定不会以有意义的方式很快改变。那么,为什么不购买一个包含此信息的文本文档,并对该文本文件执行所有查询呢?此外,如果您需要扩大规模以对大量单词执行同义词查询,那么使用它似乎是一件完美的事情。因此,您希望网站为您的应用程序提供服务,而不向您收取任何费用,这不会为网站所有者带来收入?我并不是说寻找单词的同义词是一项主要任务(其实不是),但没有什么是免费的。你应该考虑使用离线词典而不是在线服务。所以你正在寻找一本免费词典。我不明白这是一个Python问题。@Nox我不知道你所说的“浏览器”是什么意思。您希望下载WordNet数据库,然后在应用程序中使用它(不管它是在服务器上还是在客户机上)。看到类似的东西。