问题描述
我有一个 PoS 列,其中将单词标记为名词、形容词或动词。我当前的代码提取所有名词词并将它们存储在数据框的新列中:
import pandas as pd
from nltk.tag import pos_tag
data = {'comments':['Daniel is really cool','Daniel is the most amazing host!','Daniel is highly recommended']}
df = pd.DataFrame(data)
import nltk
nltk.download('stopwords')
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize,sent_tokenize
df['tokenized_text'] = df['comments'].apply(word_tokenize)
df['tagged'] = df['tokenized_text'].apply(pos_tag)
def get_vocab(df):
nouns = []
for (word,pos) in df:
if pos.startswith("NN"):
nouns.append(word)
return nouns
df["nouns"] = df["tagged"].apply(get_vocab)
但是,我想将所有名词词存储在列表中而不是数据框中,并且只包含前 100 个常用名词词。我该怎么办?我想要的列表如下所示:
['Daniel','is']
因为这是一个小例子,我只有这两个,但在我的实际数据集中,我会有数千个重复的名词,所以我只想存储前 100 个最常见的名词。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)