簡體   English   中英

文件清單的tfidf

[英]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 ,而不是listlist 如果是這樣,請更改:

results.append(line.strip().split('\n'))

至:

results.extend(line.strip().split('\n'))

appendsplit返回的整個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM