对 df 列进行词形还原
Lemmatize df column
我正在尝试对 df 中的内容进行词形还原,但我编写的函数无法正常工作。在尝试对列中的数据进行词形还原之前,它看起来像这样。
然后我运行下面的代码:
import nltk
nltk.download('wordnet')
from nltk.stem import WordNetLemmatizer
# Init the Wordnet Lemmatizer
lemmatizer = WordNetLemmatizer()
def lemmatize_text(text):
lemmatizer = WordNetLemmatizer()
return [lemmatizer.lemmatize(w) for w in text]
df['content'] = df["content"].apply(lemmatize_text)
print(df.content)
现在内容栏如下所示:
我不确定我做错了什么,但我只是想对内容列中的数据进行词形还原。任何帮助将不胜感激。
您正在对每个字符而不是单词进行词形还原。您的函数应该如下所示:
def lemmatize_text(text):
lemmatizer = WordNetLemmatizer()
return ' '.join([lemmatizer.lemmatize(w) for w in text.split(' ')])
我正在尝试对 df 中的内容进行词形还原,但我编写的函数无法正常工作。在尝试对列中的数据进行词形还原之前,它看起来像这样。
然后我运行下面的代码:
import nltk
nltk.download('wordnet')
from nltk.stem import WordNetLemmatizer
# Init the Wordnet Lemmatizer
lemmatizer = WordNetLemmatizer()
def lemmatize_text(text):
lemmatizer = WordNetLemmatizer()
return [lemmatizer.lemmatize(w) for w in text]
df['content'] = df["content"].apply(lemmatize_text)
print(df.content)
现在内容栏如下所示:
我不确定我做错了什么,但我只是想对内容列中的数据进行词形还原。任何帮助将不胜感激。
您正在对每个字符而不是单词进行词形还原。您的函数应该如下所示:
def lemmatize_text(text):
lemmatizer = WordNetLemmatizer()
return ' '.join([lemmatizer.lemmatize(w) for w in text.split(' ')])