我有一个文档列表(TDT2语料库),我想使用tfidf从其中获取一个词汇表。使用textblob需要花费很长时间,而且我不认为它会在5-6天之前产生一个词汇表。还有什么其他的技巧可以做吗?我遇到了scikit-学习的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)这会产生一个关于不接受列表的错误,并且列表没有更低的值。
发布于 2015-12-11 02:48:35
我认为results应该只是一个list,而不是list的list?如果是这样的话,改变一下:
results.append(line.strip().split('\n'))至:
results.extend(line.strip().split('\n'))append将split返回的整个list作为results list中的单个元素添加;extend将从list返回的项单独添加到results中。
备注:书面
blob=[]
for line in results:
blob.append(line)只是在缓慢地复制results。您可以用blob = results[:]或blob = list(results)来代替它(后者比较慢,但是如果您不知道什么类型的可迭代results,并且需要它是一个list,而不是其他东西,那就是这样做的)。
https://stackoverflow.com/questions/34215300
复制相似问题