Python中的同义词/连词字符串
我想使用PyDictionary查找文本字符串中每个单词的所有同义词,并返回字符串中每个单词的答案的串联版本。我知道我需要某种类型的join语句,但还没有完全解决。到目前为止,答案总体上是有帮助的,但还有一个额外的复杂问题 当dictionary.synonyms(word)没有任何同义词时,它会以“word在API中没有同义词”作为回复,并将其视为一个列表。我得到这个错误:Python中的同义词/连词字符串,python,string,join,text,Python,String,Join,Text,我想使用PyDictionary查找文本字符串中每个单词的所有同义词,并返回字符串中每个单词的答案的串联版本。我知道我需要某种类型的join语句,但还没有完全解决。到目前为止,答案总体上是有帮助的,但还有一个额外的复杂问题 当dictionary.synonyms(word)没有任何同义词时,它会以“word在API中没有同义词”作为回复,并将其视为一个列表。我得到这个错误: <ipython-input-53-9f48f79fe623> in str_synonyms(strin
<ipython-input-53-9f48f79fe623> in str_synonyms(string)
3 newstring = ''
4 for word in string:
5 while dictionary.synonym(word).endswith("has no Synonyms in the API"):
6 newstring += 'none'
7 else:
任何额外的帮助都将不胜感激,谢谢 如果
字符串参数来自用空格分隔的单词,则可以尝试以下方法:
def str_synonyms(string):
newstring_list = []
for word in string.split():
if dictionary.synonym(word):
newstring_list.extend(dictionary.synonym(word))
newstring = ', '.join(newstring_list)
return newstring
我查看了从PyPI链接的方法,同义词的静态方法似乎在成功时返回一个列表,但打印错误,否则不返回任何内容(无)
我认为这段代码对你有用:
def get_synonym_search(word):
synlist = dictionary.synonym(word)
synlist = [] if not synlist else synlist
synlist = [word] + synlist
search = "(" + " OR ".join(synlist) + ")"
return search
您没有正确使用join
函数,请注意str.join(list)
返回一个字符串,其中list
中的每个值都由str
字典连接在一起。同义词(word)
返回一个列表(我猜是word
的所有可能同义词)。那么,如果有多个同义词,您希望在newstring
中附加什么?(顺便说一句,这解释了TypeError
异常)。我想附加所有同义词。所以,如果阵雨的同义词是“雨”、“倾盆大雨”和“洪水”,我希望这些都用逗号分隔,谢谢!当我这样做时,它基本上是有效的——但由于同义词函数,我最终会出现一个与列表/字符串相关的错误。有什么想法吗?我已经更新了上面的代码。@user2573355我已经编辑了答案,现在可以了吗?越来越近了!返回此错误:TypeError:无法连接'str'和'list'对象#用于查找搜索词的同义词def str_同义词(string):newstring=''for word in string:if type(dictionary.synonym(word))==list:newstring+='none'其他:newstring+=str(dictionary.synonym(word))返回newstring@user2573355我再次编辑了答案,这对我来说很有效。
def get_synonym_search(word):
synlist = dictionary.synonym(word)
synlist = [] if not synlist else synlist
synlist = [word] + synlist
search = "(" + " OR ".join(synlist) + ")"
return search