我想要一个作为新行添加到dataframe的列表。
import nltk
import pandas as pd
from nltk.corpus import wordnet
import pandas as pd
import numpy as np
Overviewdataframe = pd.DataFrame([])
synonyms = []
for syn in wordnet.synsets("active"):
for l in syn.lemmas():
synonyms.append(l.name())
Overviewdataframe = Overviewdataframe.append(synonyms)
synonyms = []相反,该行被添加为列。你能帮帮我吗?
谢谢。
发布于 2019-12-10 17:41:47
TL;DR
from itertools import chain
import pandas as pd
from nltk.corpus import wordnet as wn
wordlist = ['active', 'fan', 'hop', 'grace']
words2lemmanames = [{'word': word, 'synset':ss.name(), 'lemma_names':ss.lemma_names()}
for word in wordlist for ss in wn.synsets(word)]
pd.DataFrame(words2lemmanames)在Long中
在NLTK中查询WordNet接口时,查询一个单词会返回一个“概念”,也称为“同义词集”。
>>> wn.synsets('active')
[Synset('active_agent.n.01'), Synset('active_voice.n.01'), Synset('active.n.03'), Synset('active.a.01'), Synset('active.s.02'), Synset('active.a.03'), Synset('active.s.04'), Synset('active.a.05'), Synset('active.a.06'), Synset('active.a.07'), Synset('active.s.08'), Synset('active.a.09'), Synset('active.a.10'), Synset('active.a.11'), Synset('active.a.12'), Synset('active.a.13'), Synset('active.a.14')]每个同义词集都有自己的词条名称列表,即
>>> wn.synsets('active')[0].lemma_names()
['active_agent', 'active']您也可以直接使用它们的" name“来访问synset,通常的"name”约定是(i)第一个词条名称,然后点(ii) POS标签和点(ii)索引号。
>>> wn.synsets('active')[0] == wn.synset('active_agent.n.01')
True最后,给定键-值对列表(即字典对象),您可以将其提供给pandas.DataFrame以将其转换为数据帧。
https://stackoverflow.com/questions/59259378
复制相似问题