[英]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.