楼主: 我是小趴菜
418 0

[数据挖掘新闻] 在python中对整个句子进行Lematizing是行不通的 [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

楼主
我是小趴菜 发表于 2022-10-12 14:05:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我在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结尾。




二维码

扫码加我 拉你入群

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

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

关键词:python EMA ATI ING LEM

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 10:15