自我定义引理化单词并附加到WordNetLemmatiz

2024-04-28 01:38:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为柠檬化结果附加一些例外。例如,当我测试wnl.lemmatize('cookies')时,得到的结果是cooky,而不是cookie。如何将柠檬化结果更新为cookie

import nltk
from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk.stem import WordNetLemmatizer 
wnl = WordNetLemmatizer()

def text_cleaning(text):
  text = text.lower()
  tok_list = [wnl.lemmatize(w,tag[0].lower()) if tag[0].lower() in ['a','n','v'] else wnl.lemmatize(w) for w,tag in pos_tag(word_tokenize(text))]
return ' '.join(tok_list)

Tags: textfromposimportcookietaglowerword
1条回答
网友
1楼 · 发布于 2024-04-28 01:38:59

通过查看发现的实现here,您可能可以执行以下操作

class WNWrapper(WordNetLemmatizer):
    def __init__(self, custom_transforms):
        self.custom_transforms = custom_transforms

    def lemmatize(self, word):
        if word in self.custom_transforms:
            return self.custom_transforms[word]
        super().lemmatize(word)

但这只有在

1)你知道哪些词你想改/不改

这是一个小数目。这显然不具有可伸缩性

相关问题 更多 >