Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的同义词/连词字符串_Python_String_Join_Text - Fatal编程技术网

Python中的同义词/连词字符串

Python中的同义词/连词字符串,python,string,join,text,Python,String,Join,Text,我想使用PyDictionary查找文本字符串中每个单词的所有同义词,并返回字符串中每个单词的答案的串联版本。我知道我需要某种类型的join语句,但还没有完全解决。到目前为止,答案总体上是有帮助的,但还有一个额外的复杂问题 当dictionary.synonyms(word)没有任何同义词时,它会以“word在API中没有同义词”作为回复,并将其视为一个列表。我得到这个错误: <ipython-input-53-9f48f79fe623> in str_synonyms(strin

我想使用PyDictionary查找文本字符串中每个单词的所有同义词,并返回字符串中每个单词的答案的串联版本。我知道我需要某种类型的join语句,但还没有完全解决。到目前为止,答案总体上是有帮助的,但还有一个额外的复杂问题

当dictionary.synonyms(word)没有任何同义词时,它会以“word在API中没有同义词”作为回复,并将其视为一个列表。我得到这个错误:

 <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