我有一份文件清单(TDT2语料库),我希望使用tfidf从中获取词汇。使用textblob是永远的,我不认为它在5-6天之前产生词汇量给定速度。有没有其他技术可以解决这个问题?我遇到了scikit-learn的tfidf技术,但我担心它也需要相同的时间。
from sklearn.feature_extraction.text import CountVectorizer
results = []
with open("/Users/mxyz/Documents/wholedata/X_train.txt") as f:
for line in f:
results.append(line.strip().split('\n'))
blob=[]
for line in results:
blob.append(line)
count_vect= CountVectorizer()
counts=count_vect.fit_transform(blob)
print(counts.shape)
这会导致产生关于不接受列表的错误,并且该列表没有更低的值。
答案 0 :(得分:1)
我认为results
应该只是list
,而不是list
的{{1}}?如果是这种情况,请更改:
list
为:
results.append(line.strip().split('\n'))
results.extend(line.strip().split('\n'))
将append
返回的整个list
添加为split
results
中的单个元素; list
正在逐个添加extend
到list
的项目。
旁注:正如所写
results
只是慢慢地对blob=[]
for line in results:
blob.append(line)
进行浅层复制。您可以将其替换为results
或blob = results[:]
(后者速度较慢,但如果您不知道可迭代的blob = list(results)
是什么类型,则需要它为{{{ 1}}而不是别的,那是你怎么做的。)