繁体   English   中英

如何使用 nltk 阻止熊猫数据框? 输出应该是一个词干数据框

[英]How to stem a pandas dataframe using nltk ? The output should be a stemmed dataframe

我正在尝试预处理数据集。 数据集包含文本数据。 我已经从该数据集创建了一个 Pandas DataFrame。 我的问题是,如何在 DataFrame 上使用词干提取并获得一个词干提取的 DataFrame 作为输出?

给定某个 Pandas df,您可以在对单词进行标记后对整个 df 应用词干提取函数来提取内容。

为此,我示例性地使用了 nltk 的滚雪球词干。

from nltk.stem.snowball import SnowballStemmer
englishStemmer=SnowballStemmer("english") #define stemming dict

这个标记器:

from nltk.tokenize import WhitespaceTokenizer as w_tokenizer

定义你的函数:

def stemm_texts(text):
    return [englishStemmer.stem(w) for w in w_tokenizer.tokenize(str(text))]

在您的 df 上应用该函数:

df = df.apply(lambda y: y.map(stemm_texts, na_action='ignore'))

请注意,我还添加了 NaN 忽略部分。

您可能想再次取消标记:

from nltk.tokenize.treebank import TreebankWordDetokenizer

detokenizer = TreebankWordDetokenizer()
df = df.apply(lambda y: y.map(detokenizer.detokenize, na_action='ignore'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM