我有一些关于一些阿拉伯推文的 csv 文件,我做了标记、词干和清理文本
`data = pd.read_csv(r"tweet.csv" ,dtype=str, encoding="utf-8")
def preprocessing(text):
\#remove stop words
stop_words = set(stopwords.words('arabic'))
\#takenazation
tokens = word_tokenize(text.lower())
result = \[i for i in tokens if not i in stop_words\]
\#stemming
als=ArabicLightStemmer();
word_list = \[als.light_stem(w) for w in result\]
return word_list
data\['text'\] = data\['text'\].apply(preprocessing)
vectorizer=TfidfVectorizer(binary=False,norm='l2',use_idf=True,smooth_idf=True,lowercase=True,min_df=1,
max_df=1.0,max_features=None,ngram_range=(1,1))
vectorizer.fit(data\["text"\])
x=vectorizer.transformv(data\["text"\])
我在 TfidfVectorizer 中有错误,它说“list”对象没有属性“lower”
我想对我的文本进行矢量化
如果“文本”是列表格式,则下部功能不适用于列表。 它适用于将字符串作为列表中的元素。
所以你应该输入
[x.lower() for x in text]
作为函数的参数。
我们应该把 [x.lower() for x in text] 放在函数中的哪里?