[英]Tfidf of a list of documents
我有一個文檔列表(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)
這將不斷產生關於不接受列表的錯誤,並且該列表沒有更低的列表。
我假設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
,別無其他,那就是你會怎么做)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.