文件列表的Tfidf

2021-03-02 16:24:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文档列表(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)

这会不断产生一个错误,即不接受一个列表,而该列表没有更低的。在

1条回答
网友
1楼 ·

我假设results应该是list,而不是lists的list?如果是这样,请更改:

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

收件人:

^{pr2}$

append正在将split返回的整个list作为单个元素添加到resultslist中;extend将从list单独添加到results中。在

旁注:如前所述

blob=[]
for line in results:
    blob.append(line)

只是做一个浅拷贝results的慢方法。你可以用blob = results[:]blob = list(results)(后者比较慢,但是如果你不知道results是什么类型的iterable,并且需要它是list而不需要其他任何东西,那么你就可以这样做了)。在

相关问题