tfidf模型保存,tfidfjava实现
详细的tfidf施工流程示例(turn)-ANC Runa专栏-博客频道-CSDN。网
详细的tfidf施工流程示例(转弯)
分类:
算法
2011-04-21 17:31
62人阅读
评论(0)
收集
文本相似度计算是文本聚类的基础。与传统的结构化数值数据聚类方法类似,文本聚类通过计算文本之间的“距离”来表达文本之间的相似性,并生成聚类。文本相似度常用的计算方法有余弦定理和雅克卡系数。然而,文本数据不同于普通的数值数据或通用数据。文本数据是一种半结构化数据。在进行文本挖掘之前,必须对文本数据源进行处理,如分词、矢量化等。其目的是将这些半结构化的文本数据用量化值表示出来。使其适合于分析和计算。
在进行文本数据挖掘或信息检索时,会对文本进行分割。切分后,文本的表示就变成了由几个关键词(Token)表示的多维向量。它可以表示为:D (T1,T2,tn),D代表处理过的文档,TN代表在D中至少出现过一次的关键词。在文本挖掘过程中,会处理大量的文档,记录为d1,d2,…,dm。分词后,这些文档的向量表示就变成了DM (T1,T2,TN),其中M代表文档数,N代表某个文档中的关键词数。在下面的示例中有两个包含几个关键字的文档,该示例提供的数据将用于本文的其余部分。
d1(A、B、C、C、S、D、A、B、T、S、S、S、T、W、W)
d2(C、S、S、T、W、W、A、B、S、B)
了解了文档的向量表示之后,我们再来看看TFIDF加权统计法(在一些简单的处理方法中,仅通过词频就可以计算出文本之间的相似度,但是当一个关键词在两个长度相差很大的文本中出现的频率相近时,结果的准确性就会降低)。TFIDF是一种加权技术,它通过统计方法计算和表达文本中关键词的重要性。TFIDF由两部分组成,一部分是TF(Token Frequency),表示一个词在文档中出现的次数,即词频。另一部分是IDF(逆文档频率),表示某个词出现在多少文本中(或者解释为多少文本包含该词),即逆文档频率,通常用公式idft=log ((1 D)/Dt),其中D表示文档总数,Dt表示包含关键字t的文档数,TFIDF的值是这两部分相乘得到的。还需要指出的是,TFIDF并不是指一个具体的公式,而是代表了一系列基于基本TFIDF方法的变体(分别处理TF和IDF两部分),tfidftd=tftd * ln (idft)(文本D中T关键字的词频乘以T的逆向文档频率的自然对数)是大多数系统证明的最有效的一个。现在看看上面例子中给出的数据。词频矩阵可以从示例给出的数据中获得,如下所示:
d1
d2
A
2
一个
B
2
2
C
2
一个
D
一个
0
S
四
三
T
2
一个
W
2
2
通常需要对词频数据进行归一化处理,防止词频数据偏向关键词较多的文本,即较长的文本。例如,一个单词在文档d1中出现100次,在文档d2中出现100次。仅从词频来看,这个词在这两个文件中的重要性是一样的。但是再考虑一个因素,就是d1的关键词总数是1000,而d2是100000,所以总体来说这个词在d1和d2的重要性是不一样的。因此,有必要对词频进行规范化。归一化的方法是用词频除以所有文档中的关键词总数。将上述词频矩阵归一化后,结果如下:
d1
d2
A
0.08
0.04
B
0.08
0.08
C
0.08
0.04
D
0.04
0.00
S
0.16
0.12
T
0.08
0.04
W
0.08
0.08
文档中的关键字总数=25
然后计算每个关键词对应的倒排文档频率,也就是IDF的值。如下表所示:
ln
A
0.4
B
0.4
C
0.4
D
1.1
S
0.4
T
0.4
W
0.4
最后将归一化词频乘以IDF值,结果如下:
d1
d2
A
0.032
0.016
B
0.032
0.032
C
0.032
0.016
D
0.044
0.000
S
0.064
0.048
T
0.032
0.016
W
0.032
0.032
得到TFIDF权重后,我们可以利用这些数据通过余弦定理或Jaccard系数计算文本之间的相似度,从而实现文本聚类等标准的文本挖掘算法。