在数据帧的词性 (PoS) 列中查找 X 个最频繁的名词

问题描述

我有一个 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 (将#修改为@)