【发布时间】:2018-07-10 13:56:00
【问题描述】:
我是 Pandas 的初学者,我正在尝试弄清楚如何对我的数据框的单列进行词形还原。以下面的例子为例(这是(不)常用词删除后的一些文本,我想对其进行词形还原):
0 好需要改变 virgils 天然微酿...
1 个新的最爱,令人愉快的惊喜发现 fl...
2红酱最爱享受浓郁的单宁ok拉...
3 质量很棒的 1800 年代 21 世纪尝试饮料......
4红色第一次尝试爱100出色的混合...
这是我用来进行词形还原的代码(取自here):
df['words'] = df['words'].apply(lambda x: "".join([Word(word).lemmatize() for word in x]))
df['words'].head()
但是一旦运行这段代码,输出就不会改变:
0好需要换维吉尔天然微酿r...
1 个新的最爱,令人愉快的惊喜发现 fl...
2红酱最爱享受浓郁的单宁ok拉...
3 质量很棒的 1800 年代 21 世纪尝试饮料......
4红色第一次尝试爱100出色的混合...
任何帮助将不胜感激:)
P.S:words 是一个标记词列表
【问题讨论】:
-
它看起来像
needs=>need、changes=>change和virgils=>virgil所以输出确实改变了。 -
@Scratch'N'Purr 哦,是的...我更关注
trying不应该变成try吗?或者brewed应该变成brew -
公平点。在这种情况下,您的问题可能比实际情况更复杂,因为您必须为刚才提到的动词指定词性 (POS)。如果您在不指定 POS 的情况下运行
lemmatize方法,它将失败。因此,对于trying和brewed,代码必须是Word('trying').lemmatize('v')和Word('brewed').lemmatize('v')。 Source
标签: python pandas lemmatization