WordNet Lemmatizer 不是将 CSV 文件中一个单词的所有变形词形还原

问题描述

我想对句子中的所有单词进行词形还原(CSV 文件,该文件包含推文),以实现我们减少单词出现频率的目标。通过使用 wordnet lemmatizer。我知道 lemmatizer 的 defult 是名词,但我想在许多 pos 标签上进行词形还原。

例如,所有这些词死,死,死成为他们的词根是死。 又如威胁不归根,恐怖、恐怖、恐怖主义归根。

我想,我想对单词而不是句子进行标记化并将其词形化。

我正在尝试使用此代码,但结果不如上面的示例好,并且轰炸不要返回炸弹等等。 ()

import nltk
from nltk.tokenize import word_tokenize
from nltk.stem.wordnet import WordNetLemmatizer
from nltk.corpus import wordnet
lemmatizer = nltk.stem.WordNetLemmatizer()
wordnet_lemmatizer = WordNetLemmatizer()


def nltk_tag_to_wordnet_tag(nltk_tag):
    if nltk_tag.startswith('J'):
        return wordnet.ADJ
    elif nltk_tag.startswith('V'):
        return wordnet.VERB
    elif nltk_tag.startswith('N'):
        return wordnet.NOUN
    elif nltk_tag.startswith('R'):
        return wordnet.ADV
    else:
        return None

def lemmatize_sentence(sentence):
    #tokenize the sentence and find the POS tag for each token
    nltk_tagged = nltk.pos_tag(nltk.word_tokenize(sentence))
    #tuple of (token,wordnet_tag)
    wordnet_tagged = map(lambda x: (x[0],nltk_tag_to_wordnet_tag(x[1])),nltk_tagged)
    lemmatized_sentence = []
    for word,tag in wordnet_tagged:
        if tag is None:
            #if there is no available tag,append the token as is
            lemmatized_sentence.append(word)
        else:
            #else use the tag to lemmatize the token
            lemmatized_sentence.append(lemmatizer.lemmatize(word,tag))
    return " ".join(lemmatized_sentence)
# Lemmatizing
df['Lemmatize'] = df['text'].apply(lambda x: lemmatize_sentence(x))
print(df.head())

谢谢你的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)