java 向量相似度计算 tf

阅读: 评论:0

java 向量相似度计算 tf

java 向量相似度计算 tf

本篇博客,主要是描述一种计算文本相似度的算法,基于TF-IDF算法和余弦相似性。算法的描述请务必看阮一峰的博客,不然看不懂本篇博客,地址:

在这里,主要讨论具体的代码的实现。过程如下:

使用TF-IDF算法,找出两篇文章的关键词;

每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使用相对词频);

生成两篇文章各自的词频向量;

计算两个向量的余弦相似度,值越大就表示越相似。

首先,请看此算法代码的文件结构:

接下来,是算法的实现步骤:

第一步:使用TF-IDF算法,找出两篇文章的关键词

/**

* (1)使用TF-IDF算法,找出两篇文章的关键词;

*

* @param uri

* 待比较的文本的路径

* @return 文本被分词后,词的ELementSet集合

* @throws IOException

*/

private static ElementSet getKeyTerms(String uri) throws IOException {

// 分词后,获得ElementMap集合

ElementMap em = null;

String text = adText(uri);

em = kenizer(text);

ElementSet es = em.getElementSetOrderbyTf();

// 计算tf、idf和tf_idf的值

Double de = (double) untTatolFromTerm("的")+1;

for (Element e : es.getElementSet()) {

// 计算tf

Double tf = e.getTf() / es.getElementSet().size();

e.setTf(tf);

// 计算idf

Double num = (double) Term());

Double idf = Math.log10(de / (num+1));

e.setIdf(idf);

// 计算tf_idf

Double tf_idf = tf * idf;

e.setTf_idf(tf_idf);

}

// 将排序的依据更改为tf_idf

System.out.println("第一步:计算词的tf、idf和tf_idf");

for (Element e : es.getElementSet()) {

System.out.Term() + "---tf:" + e.getTf() + "---idf:" + e.getIdf()

本文发布于:2024-02-05 01:02:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170720502261632.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:java tf
下一篇:TF2
标签:向量   java   tf
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23