TypeError:lemmatize()缺少1个必需的位置参数:'word

问题描述 投票:1回答:1

我在csv文件中的每一行都有一个数组,如下所示:

[['thxx'], ['too', 'late', 'now', 'dumbass'], ['you', '‘', 're', 'so', 'dumb', '?', '?'], ['thxxx'], ['i', '‘', 'd', 'be', 'fucked']]

[当我尝试将其传递给这样的词机时:

from nltk.stem import WordNetLemmatizer
lemmatized_words = [WordNetLemmatizer.lemmatize(word) for word in tokened_text]
print(lemmatized_words)

我收到以下错误:

TypeError: lemmatize() missing 1 required positional argument: 'word'

为什么?

作为附带问题:在传递给Vectorization之前,我需要这样做吗?我正在构建一个机器学习模型,并看到sci kit中的CountVectorizer函数学习了,但是也没有事先找到任何信息进行了词素化等。

machine-learning nlp nltk
1个回答
0
投票

WordNetLemmatizer是一个类,您需要首先实例化它

    tokened_text是嵌套列表,因此您需要嵌套列表理解来保留结构。另外lemmatize还需要一个字符串。
  • 您可以通过以下方式进行此操作:
  • from nltk.stem import WordNetLemmatizer wnl = WordNetLemmatizer() lemmatized_words = [[wnl.lemmatize(word) for word in l] for l in tokened_text]
  • © www.soinside.com 2019 - 2024. All rights reserved.