Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于tf-idf-Python获取顶级术语_Python_Tf Idf - Fatal编程技术网

如何基于tf-idf-Python获取顶级术语

如何基于tf-idf-Python获取顶级术语,python,tf-idf,Python,Tf Idf,这是我的python代码 tfidf = TfidfVectorizer(tokenizer=tokenize, stop_words='english') tfidf_matrix = tfidf.fit_transform(token_dict.values()) print tfidf_matrix 结果如下: (0, 210) 0.14152686101 (0, 1) 0.0707634305049 (0, 261)

这是我的python代码

tfidf = TfidfVectorizer(tokenizer=tokenize, stop_words='english')
tfidf_matrix = tfidf.fit_transform(token_dict.values())
print tfidf_matrix
结果如下:

        (0, 210)    0.14152686101
        (0, 1)      0.0707634305049
        (0, 261)    0.212290291515
        (0, 11)     0.135603306032
              : :
        (3, 49)     0.0709465134358
        (3, 37)     0.315905243912
        (3, 374)    0.11487463415
        (3, 192)    0.057437317075

我想返回的是前10名(基于他们的tfidf)术语的名称和每个文档的tfidf分数

在tfidf_矩阵中,每一行对应一个文档。您可以取出每一行并argsort(),这将为您提供术语中具有最高(最低)值的列。这样你就可以提取它。然后,您可以将相同的索引输入到矩阵本身的行中,以获得分数

#convert your matrix to an array to loop over it
mat_array = tfidf_matrix.toarray()

# get your feature names
fn = tfidf.get_feature_names()

for l in mat_array: 
print [(fn[x],l[x]) for x in (l*-1).argsort()][:10]
不知道您希望如何输出它,但是您显然可以通过多种方式来实现,或者在循环过程中将所有内容保存在数据结构中,然后再进行输出。与-1相乘只是为了让argsort()从高到低排列,以获得更具可读性的切片语法。

print[(fn[x],l[x])表示(l*-1)中的x。argsort()[:10]^SyntaxError:无效语法