全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
398 0
2022-10-12

我在python的NLTK包中使用WordNetLemmatizer()函数来对电影评论数据集的整个句子进行词形变换。


这是我的代码:


from nltk.stem import LancasterStemmer, WordNetLemmatizer

lemmer = WordNetLemmatizer()


def preprocess(x):


#Lemmatization

x = ' '.join([lemmer.lemmatize(w) for w in x.rstrip().split()])


# Lower case

x = x.lower()


# Remove punctuation

x = re.sub(r'[^\w\s]', '', x)


# Remove stop words

x = ' '.join([w for w in x.split() if w not in stop_words])

## EDIT CODE HERE ##


return x


df['review_clean'] = df['review'].apply(preprocess)


解决办法:

在df上使用预处理函数后,新列review_clean包含已清理的文本数据,但它仍然没有词形文本

解决办法:必须将'v'(动词)传递给lemmatize:


x = ' '.join([lemmer.lemmatize(w, 'w') for w in x.rstrip().split()])

例:


In [11]: words = ["answered", "answering"]


In [12]: [lemmer.lemmatize(w) for w in words]

Out[12]: ['answered', 'answering']


In [13]: [lemmer.lemmatize(w, 'v') for w in words]

Out[13]: ['answer', 'answer']



以看到很多单词以-ed,-ing结尾。




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群