[英]NLTK TypeError: unhashable type: 'list'
我目前正在對 csv 文件中的單詞進行詞形還原,之后我以小寫字母傳遞所有單詞,刪除所有標點符號並拆分列。
我只使用兩個 CSV 列: analyze.info()
:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 4637 entries, 0 to 4636. Data columns (total 2 columns):
# Column Non-Null Count Dtype
0 Comments 4637 non-null object
1 Classification 4637 non-null object
import string
import pandas as pd
from nltk.corpus import stopwords
from nltk.stem import
analyze = pd.read_csv('C:/Users/(..)/Talk London/ALL_dataset.csv', delimiter=';', low_memory=False, encoding='cp1252', usecols=['Comments', 'Classification'])
lower_case = analyze['Comments'].str.lower()
cleaned_text = lower_case.str.translate(str.maketrans('', '', string.punctuation))
tokenized_words = cleaned_text.str.split()
final_words = []
for word in tokenized_words:
if word not in stopwords.words('english'):
final_words.append(word)
wnl = WordNetLemmatizer()
lemma_words = []
lem = ' '.join([wnl.lemmatize(word) for word in tokenized_words])
lemma_words.append(lem)
當我運行代碼時返回此錯誤:
回溯(最近一次調用最后一次):
文件“C:/Users/suiso/PycharmProjects/SA_working/SA_Main.py”,第 52 行,在 lem = ' '.join([wnl.lemmatize(word) for word in tokenized_words])
文件“C:/Users/suiso/PycharmProjects/SA_working/SA_Main.py”,第 52 行,在 lem = ' '.join([wnl.lemmatize(word) for word in tokenized_words])
文件“C:\\Users\\suiso\\PycharmProjects\\SA_working\\venv\\lib\\site-packages\\nltk\\stem\\wordnet.py”,第 38 行,詞形還原詞 lemmas = wordnet._morphy(word, pos)
文件“C:\\Users\\suiso\\PycharmProjects\\SA_working\\venv\\lib\\site-packages\\nltk\\corpus\\reader\\wordnet.py”,第 1897 行,在 _morphy 中
如果形式在例外:
類型錯誤:不可散列的類型:“列表”
tokenized_words
是一列列表。 它不是一列字符串的原因是因為您使用了split
方法。 所以你需要像這樣使用雙循環
lem = ' '.join([wnl.lemmatize(word) for word_list in tokenized_words for word in word_list])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.