1. ホーム
  2. python

[解決済み] Pythonで同義語/単語列と結合する

2022-02-15 15:45:27

質問

PyDictionaryを使って、文字列中の各単語の同義語をすべて検索し、各単語の答えを連結したものを返したいのですが、どうすればいいですか? ある種の結合文が必要なことは分かっているのですが、なかなかうまくいきません。 今までの回答は概ね役に立ちましたが、さらに複雑な問題があります。

dictionary.synonyms(word) に同義語がない場合、 "word has no Synonyms in the 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:

これらのインスタンスを "none" に置き換えるフィルタを追加した場合。

これは、この関数の最新の繰り返しです。

 #Function to find synonyms for search terms
 def str_synonyms(string):
    newstring = ''
    for word in string:
        while dictionary.synonym(word).endswith("has no Synonyms in the API"):
            newstrong += none
        else:
            newstring += dictionary.synonym(word) 
    return newstring

何か追加のヘルプがあれば、ありがたいです、ありがとうございます

解決方法は?

もし、あなたの string の引数がスペースで区切られた単語である場合は、次のようにするとよいでしょう。

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