Machine learning TypeError:lemmatize()缺少1个必需的位置参数:';单词

Machine learning TypeError:lemmatize()缺少1个必需的位置参数:';单词,machine-learning,nlp,nltk,Machine Learning,Nlp,Nltk,csv文件中的每一行都有一个数组,如下所示: [['thxx'], ['too', 'late', 'now', 'dumbass'], ['you', '‘', 're', 'so', 'dumb', '?', '?'], ['thxxx'], ['i', '‘', 'd', 'be', 'fucked']] 当我试着像这样把它传给柠檬加工机时: from nltk.stem import WordNetLemmatizer lemmatized_words = [WordNetLemmat

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'
为什么呢


作为一个附带问题:在将其传递给矢量化之前,我需要这样做吗?我正在建立一个机器学习模型,并在sci kit learn中看到函数CountVectorizer,但事先也找不到它进行柠檬化等操作的任何信息。

您的代码中有一些错误:

  • 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]

您的代码中存在一些错误:

  • 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]
这对我来说很好


这对我来说很好。

标记文本中的每个
单词似乎都是一个单词列表。
标记文本中的每个
单词似乎都是一个单词列表。你也可以做
[nltk.stem.WordNetLemmatizer()。标记文本中的单词的lemmatize(word)
你也可以做
[nltk.stem.WordNetLemmatizer().lemmatize(单词)表示带标记的文本中的单词]
lemmatizer = WordNetLemmatizer

words = [lemmatizer.lemmatize(self, word) for word in words if word not in ignore_letter]
words = sorted(set(words))