1
我有一个大的语料库存储为25个列表的字典,我想用SKLearn的TfidfVectorizer
来分析。每个列表包含许多字符串。现在,我关心整个语料库中的总体词频(tf)和25个字符串(idf)的每个列表中最独特的词。问题是,我还没有找到将这种对象传递给TfidfVectorizer的方法。通过字典只是矢量化的关键,传递值产生AttributeError: 'list' object has no attribute 'lower'
(我想它预计字符串。)在列表词典上使用TfidfVectorizer
在此先感谢。
更新:现在包括我的预处理步骤,其使用面积的dict
,ID对所谓buckets
for area in buckets:
area_docs = []
for value in buckets[area]:
if 'filename_%s.txt' % value in os.listdir(directory):
fin = open(directory+'/filename_%s.txt' % value, 'r').read()
area_docs.append(fin)
buckets[area] = area_docs
corpus = buckets.values()
vectorizer = TfidfVectorizer(min_df=1, stop_words='english')
X = vectorizer.fit_transform(corpus)
idf = vectorizer.idf_
d = dict(zip(vectorizer.get_feature_names(), idf))
sorted_d = sorted(d.items(), key=operator.itemgetter(1))
sorted_d[:50]
TfidfVectorizer用于将原始文档集合转换为TF-IDF特征矩阵。它想要一系列文件。你的字典似乎被以某种方式处理,所以目前还不清楚你希望'TfidfVectorizer'做什么。 –
谢谢@ juanpa.arrivillaga。编辑以反映列表项目是多字符串(在我的实际案例中〜2000字)。这些清单基本上都是亚文库。实际上,我想知道给定子小组(列表)中最有特色的单词。 – 6Bacon