问题描述
行 | 词形还原 |
---|---|
1 | [i,b,e,o,k,a,y,... |
虽然我希望输出如下所示,以便我可以提取到 CSV 文件中并进行进一步分析:
行 | 词形化 |
---|---|
1 | 我没事 |
我的代码如下:
import pandas as pd
import nltk
from nltk.stem import WordNetLemmatizer
df = pd.read_csv(r"C:xxxxx")
rws=df.loc[:,['MESSAGE']]
rws['pos_tags'] = rws['MESSAGE'].apply(nltk.tag.pos_tag)
def get_wordnet_pos(tag):
if tag.startswith('J'):
return wordnet.ADJ
elif tag.startswith('V'):
return wordnet.VERB
elif tag.startswith('N'):
return wordnet.NOUN
elif tag.startswith('R'):
return wordnet.ADV
else:
return wordnet.NOUN
rws['wordnet_pos'] = rws['pos_tags'].apply(lambda x: [(word,get_wordnet_pos(pos_tag)) for (word,pos_tag) in x])
wnl = WordNetLemmatizer()
rws['lemmatized'] = rws['wordnet_pos'].apply(lambda x: [wnl.lemmatize(word,tag) for word,tag in x])
任何人都可以指导我做错什么吗?提前致谢。
解决方法
明白了,伙计们,这很简单(难堪)。我很抱歉措辞不正确。我想把每一行放回字符串中。因此,我使用的代码是:
rws["final"]= rws["lemmatized"].str.join(" ")