tfidf模型保存,tfidfjava实现

  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系数计算文本之间的相似度,从而实现文本聚类等标准的文本挖掘算法。

tfidf模型保存,tfidfjava实现