利用sklearn计算文本相似性
来源:互联网 发布:速配网软件下载 编辑:程序博客网 时间:2024/05/29 18:02
利用sklearn计算文本相似性,并将文本之间的相似度矩阵保存到文件当中。这里提取文本TF-IDF特征值进行文本的相似性计算。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/python
# -*- coding: utf-8 -*-
import
numpy
import
os
import
sys
from
sklearn
import
feature_extraction
from
sklearn.feature_extraction.text
import
TfidfTransformer
from
sklearn.feature_extraction.text
import
TfidfVectorizer, CountVectorizer
reload
(sys)
#sys.setdefaultencoding('utf8')了 网易 杭研 大厦","小明 硕士 毕业 与 中国 科学院","我 爱 北京 天安门"]
trainfile
=
open
(
"C:\\Users\\hd\\Desktop\\docs.txt"
,
"r"
)
#不同的documents用换行符隔开
traincorpus
=
trainfile.readlines()
#corpus=["我 来到 北京 清华大学","我 他 来到
trainfile.close()
corpus
=
traincorpus;
vectorizer
=
CountVectorizer()
#该类会将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在i类文本下的词频
tfidf_vectorizer
=
TfidfVectorizer(max_df
=
0.95
, min_df
=
2
,
#max_features=n_features,
stop_words
=
'english'
)
transformer
=
TfidfTransformer()
#该类会统计每个词语的tf-idf权值
tfidf
=
transformer.fit_transform(tfidf_vectorizer.fit_transform(corpus))
#第一个fit_transform是计算tf-idf,第二个fit_transform是将文本转为词频矩阵
word
=
tfidf_vectorizer.get_feature_names()
#获取词袋模型中的所有词语
weight
=
tfidf.toarray()
#将tf-idf矩阵抽取出来,元素a[i][j]表示j词在i类文本中的tf-idf权重
f
=
open
(
"C:\\Users\\hd\\Desktop\\tif.txt"
,
"w+"
)
for
i
in
range
(
len
(weight)):
#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重
# print u"-------这里输出第",i,u"类文本的词语tf-idf权重------"
f.write(
str
(i
+
1
)
+
"\t"
)
for
j
in
range
(
len
(word)):
if
(weight[i][j]>
0
): f.write(
str
(j
+
1
)
+
":"
+
str
(weight[i][j])
+
" "
)
f.write(
"\n"
)
print
i
f.close()
f
=
open
(
"C:\\Users\\hd\\Desktop\\dictionary.txt"
,
"w+"
)
for
i
in
range
(
len
(word)):
f.write(
str
(i)
+
"\t"
+
word[i].encode(
"utf-8"
)
+
"\n"
)
f.close()
SimMatrix
=
(tfidf
*
tfidf.T).A
print
SimMatrix[
1
,
3
]
#"第一篇与第4篇的相似度"
numpy.savetxt(
"C:\\Users\\hd\\Desktop\\SimMatrix.csv"
, SimMatrix, delimiter
=
","
)
#保存相似度矩阵
0 0
- 利用sklearn计算文本相似性
- 利用余弦计算文本相似性
- 利用编辑距离计算文本相似性
- LSHForest进行文本相似性计算
- 利用sklearn计算词频
- 利用sklearn进行tfidf计算
- 余弦相似性的文本计算思想
- 推荐系统-文本相似性计算(1)
- 推荐系统-文本相似性计算(2)
- 推荐系统-文本相似性计算(3)
- 文本相似性检测---词语权重计算
- java实现余弦计算文本相似性
- 文本去重第一步:基于内容的文本相似性计算
- 相似性计算
- 推荐系统技术之文本相似性计算(三)
- 利用python的sklearn开源包进行文本挖掘
- 文本相似性检测算法
- 余弦定理----相似性计算
- 求解spring这些东西都代表什么意思-http://www.springframework.org/schema/beans
- 【第一章:dojo 】4)单继承
- 【人脸检测】“人脸训练代码”项目笔记(4)——代码结构分析:训练部分结构
- 强大的RecycleView
- 求普通二叉树的最长路径、求普通二叉树的路径最大和
- 利用sklearn计算文本相似性
- HDU 5787 K-wolf Number
- Dev 将Treelist设置为不能编辑
- Spring框架——Bean的生命周期
- POJ 2983 Is the Information Reliable?
- PHP中set_include_path()函数相关用法分析
- SQLServer中的外键
- XML解析之JDOM
- Efficient sparse coding algorithms