如何对 pandas 数据框中的字符串进行词形还原?

2023-12-25

我有一个 Python Pandas 数据框,我需要对其中两列中的单词进行词形还原。我正在使用 spacy 来实现这一点。

import spacy
nlp = spacy.load("en")

我正在尝试基于此示例使用词形还原(效果非常好):

doc3 = nlp(u"this is spacy lemmatize testing. programming books are more better than others")
for token in doc3: 
    print (token, token.lemma, token.lemma_)

我已经重写了它以循环遍历数据框中一列的每一行:

for row in example['col1']:
    for token in row:
        print(token.lemma_)

这是可行的,但是,我无法弄清楚如何用词形还原的单词替换 col1 中的单词。

我已经尝试过,它不会返回错误,但也不会替换任何单词。知道出了什么问题吗?

for row in example['col1']:
    for token in row:
        token = token.lemma_

在最后for代码循环中,您重复分配给变量token它的属性token.lemma_然后一次又一次地这样做(在每次迭代时覆盖它并且不跟踪以前的值)。

相反,假设您的数据框包含字符串,如

example = pd.DataFrame({"col1":["this is spacy lemmatization testing.", "some programming books are better than others", "sounds like a quote from the Smiths"]})

apply列表推导式可以完成以下工作:

example["col1"].apply(lambda row: " ".join([w.lemma_ for w in nlp(row)]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对 pandas 数据框中的字符串进行词形还原? 的相关文章

随机推荐