gpt4 book ai didi

python - 属性错误: 'list' object has no attribute 'lower' in TF-IDF

转载 作者:行者123 更新时间:2023-12-01 00:48:46 27 4
gpt4 key购买 nike

我正在尝试在 Pandas 列中应用 TF-IDF

数据

    all_cols
0 who is your hero and why
1 what do you do to relax
2 this is a hero
4 how many hours of sleep do you get a night
5 describe the last time you were relax

我知道使用 CountVectorizer,我需要将列转换为列表(这就是我尝试做的)。

要应用 TFIDF,我无法应用列表(并且我尝试将其转换为字符串)。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
import pandas as pd


df = pd.read_excel('data.xlsx')
col = df['all_cols']
corpus = col.values.tolist()

cv = CountVectorizer()
X = cv.fit_transform(corpus)

document = [' '.join(str(item)) for item in corpus]

tfidf_transformer=TfidfTransformer(smooth_idf=True,use_idf=True)
tfidf_transformer.fit(X)

feature_names=cv.get_feature_names()

tf_idf_vector=tfidf_transformer.transform(cv.transform([document]))

但我仍然有这个错误

AttributeError                            Traceback (most recent call last)
<ipython-input-239-92f296939ea7> in <module>()
16
---> 17 tf_idf_vector=tfidf_transformer.transform(cv.transform([documento]))

AttributeError: 'list' object has no attribute 'lower'

最佳答案

我只是猜测,因为我没有使用 sklearn 并且您没有发布完整的堆栈跟踪,但异常看起来需要一个字符串列表作为参数并调用字符串元素的“lower()” .

但是你正在做的是给它一个带有字符串的列表的列表:

corpus = [1,2,3]
document = [' '.join(str(item)) for item in corpus]

print (document)
>>> ['1','2','3']
print ([document])
>>> [['1','2','3']]

我敢打赌,如果你只是打电话的话,它就会被修复:

tf_idf_vector=tfidf_transformer.transform(cv.transform(document))

关于python - 属性错误: 'list' object has no attribute 'lower' in TF-IDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56735543/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com