【问题标题】:Add column of WordNet synonyms to DataFrame将 WordNet 同义词列添加到 DataFrame
【发布时间】:2021-06-19 13:05:41
【问题描述】:

我在 var output_table 中有以下示例 DataFrame:

Job Title  ReqID  Word  TFAbs
Agree to Agree Manager  R4  Trust   2
Agree to Agree Manager  R4  agree   2
Agreement Manager   R2  Trust   5

我想使用 WordNet 检查“单词”列中每个单词的同义词。为此,我有以下完美运行的代码:

for ind in output_table.index: 
 word = output_table['List*(Term as String)'][ind]
 syn = list()
 for synset in wn.synsets(word):
    for lemma in synset.lemmas():
        syn.append(lemma.name())    
 df = DataFrame(syn,columns=['synonyms ' + word])
 print("Synonyms for gender word " + word + str(syn))

对于第一行,结果是:

Synonyms for gender word Trust['trust', 'reliance', 'trust', 'trust', 'trustingness', 'trustfulness', 'trust', 'corporate_trust', 'combine', 'cartel', 'faith', 'trust', 'confidence', 'trust', 'trust', 'swear', 'rely', 'bank', 'trust', 'believe', 'trust', 'hope', 'trust', 'desire', 'entrust', 'intrust', 'trust', 'confide', 'commit', 'trust']

现在,我想为每一行添加一个包含所有同义词的列,对于第 1 行,它如下所示:

Job Title  ReqID  Word  TFAbs  Synonyms
Agree to Agree Manager  R4  Trust   2  'trust', 'reliance', 'trust', 'trust', 'trustingness', 'trustfulness', 'trust', 'corporate_trust', 'combine', 'cartel', 'faith', 'trust', 'confidence', 'trust', 'trust', 'swear', 'rely', 'bank', 'trust', 'believe', 'trust', 'hope', 'trust', 'desire', 'entrust', 'intrust', 'trust', 'confide', 'commit', 'trust'

尝试了多种方法(即追加),但我就是无法正常工作...请问可以寻求支持吗?

Ty,mikvuk

【问题讨论】:

  • 您的 example DataFrame 与您的 完美运行的代码 相比,不包含名为 List*(Term as String) 的列。

标签: pandas dataframe loops nltk wordnet


【解决方案1】:

您可以使用 .assign() 将新值添加为列。为此,我首先创建了一个新列。

column = []
for ind in output_table.index: 
    word = output_table['Word'][ind]
    syn = list()
   
    for synset in wn.synsets(word):
        for lemma in synset.lemmas():
            syn.append(lemma.name())
    
    df = pd.DataFrame(syn,columns=['synonyms ' + word])
    print("Synonyms for gender word " + word + str(syn))
    column.append(syn)
output_table.assign(newcol = column)

结果:

【讨论】:

    【解决方案2】:

    谢谢,@Minfetli

    在最后一行添加“output_table =”后完美运行:

    output_table = output_table.assign(newcol = column)
    

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多