如何计算多个文本的相似度java程序,利用向量

如何计算多个文本的相似度java程序,利用向量,第1张

String text1 = "我爱学习"

String text2 = "我竖祥庆爱读书"

String text3 = "他是黑客"

TextSimilarity textSimilarity = new CosineTextSimilarity()

double score1pk1 = textSimilarity.similarScore(text1, text1)

double score1pk2 = textSimilarity.similarScore(text1, text2)

double score1pk3 = textSimilarity.similarScore(text1, text3)

double score2pk2 = textSimilarity.similarScore(text2, text2)

double score2pk3 = textSimilarity.similarScore(text2, text3)

double score3pk3 = textSimilarity.similarScore(text3, text3)

System.out.println(text1+" 和 "+text1+" 的相似分值:"+score1pk1)

System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2)

System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3)

System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2)

System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3)

System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3)

运行结果如下:

我爱学习 和 我爱学习 的相似度分值:1.0

我爱学习 和 我爱读书 的相似度分值:0.4

我爱学习 和 他是黑客 的相似度分值:0.0

我爱读书 和 我爱读书 的相似度分值:1.0

我爱读书 和 他是黑客 的相似度分值:0.0

他是黑客 和 他是黑客 的相似度余握分值宴芹:1.0

方式二:简单共有词,通过计算两篇文档有多少个相同的词来评估他们的相似度

实现类:org.apdplat.word.analysis.SimpleTextSimilarity

用法如下:

String text1 = "我爱学习"

String text2 = "我爱读书"

String text3 = "他是黑客"

TextSimilarity textSimilarity = new SimpleTextSimilarity()

double score1pk1 = textSimilarity.similarScore(text1, text1)

double score1pk2 = textSimilarity.similarScore(text1, text2)

double score1pk3 = textSimilarity.similarScore(text1, text3)

double score2pk2 = textSimilarity.similarScore(text2, text2)

double score2pk3 = textSimilarity.similarScore(text2, text3)

double score3pk3 = textSimilarity.similarScore(text3, text3)

System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1)

System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2)

System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3)

System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2)

System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3)

System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3)

运行结果如下:

我爱学习 和 我爱学习 的相似度分值:1.0

我爱学习 和 我爱读书 的相似度分值:0.5

我爱学习 和 他是黑客 的相似度分值:0.0

我爱读书 和 我爱读书 的相似度分值:1.0

我爱读书 和 他是黑客 的相似度分值:0.0

他是黑客 和 他是黑客 的相似度分值:1.0

先计算a的长度,然后进行长度-1循环,在循环里,每磨稿悔次先取出2个字符,然后和B,indexof比较。如果值不等与-1,也就是说没有,那么继续循环,如果不等于-1,那么取连敬迟着3个字符,以次类推(这可以用第归做,瞎正比较省代码).看是去出几个字符才有的,和整个A的长度除,得出相似度


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12283398.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存