文本相似度

文本相似度——基于TF-IDF与余弦相似性

岁酱吖の 提交于 2020-03-03 23:07:09
本篇博客,主要是描述一种计算文本相似度的算法,基于TF-IDF算法和余弦相似性。算法的描述请务必看阮一峰的博客,不然看不懂本篇博客,地址: http://www.ruanyifeng.com/blog/2013/03/tf-idf.html http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html 在这里,主要讨论具体的代码的实现。过程如下: 使用TF-IDF算法,找出两篇文章的关键词; 每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使用相对词频); 生成两篇文章各自的词频向量; 计算两个向量的余弦相似度,值越大就表示越相似。 首先,请看此算法代码的文件结构: 接下来,是算法的实现步骤: 第一步:使用TF-IDF算法,找出两篇文章的关键词 /** * (1)使用TF-IDF算法,找出两篇文章的关键词; * * @param uri * 待比较的文本的路径 * @return 文本被分词后,词的ELementSet集合 * @throws IOException */ private static ElementSet getKeyTerms(String uri) throws IOException { // 分词后

基于word分词提供的文本相似度算法来实现通用的网页相似度检测

守給你的承諾、 提交于 2019-12-05 13:52:52
实现代码: 基于word分词提供的文本相似度算法来实现通用的网页相似度检测 运行结果: 检查的博文数:128 1、检查博文:192本软件著作用词分析(五)用词最复杂99级,相似度分值:Simple=0.968589 Cosine=0.955598 EditDistance=0.916884 EuclideanDistance=0.00825 ManhattanDistance=0.001209 Jaccard=0.859838 JaroDistance=0.824469 JaroWinklerDistance=0.894682 SørensenDiceCoefficient=0.924638 SimHashPlusHammingDistance=0.976563 博文地址1: http://my.oschina.net/apdplat/blog/388816 博文地址2: http://yangshangchuan.iteye.com/blog/2194214 2、检查博文:APDPlat的系统启动和关闭流程剖析,相似度分值:Simple=0.837996 Cosine=0.711649 EditDistance=0.55001 EuclideanDistance=0.003669 ManhattanDistance=0.000992 Jaccard=0.549422

利用word分词提供的文本相似度算法来辅助记忆英语单词

99封情书 提交于 2019-11-27 14:25:16
本文实现代码: 利用word分词提供的文本相似度算法来辅助记忆英语单词 本文使用的英语单词囊括了几乎所有的考纲词汇共18123词: /** * 考纲词汇 * @return */ public static Set<Word> getSyllabusVocabulary(){ return get("/word_primary_school.txt", "/word_junior_school.txt", "/word_senior_school.txt", "/word_university.txt", "/word_new_conception.txt", "/word_ADULT.txt", "/word_CET4.txt", "/word_CET6.txt", "/word_TEM4.txt", "/word_TEM8.txt", "/word_CATTI.txt", "/word_GMAT.txt", "/word_GRE.txt", "/word_SAT.txt", "/word_BEC.txt", "/word_MBA.txt", "/word_IELTS.txt", "/word_TOEFL.txt", "/word_TOEIC.txt", "/word_考 研.txt"); } 启动程序后控制台输出: -------------------------------

利用word分词来计算文本相似度

懵懂的女人 提交于 2019-11-27 01:11:16
word分词 提供了多种文本相似度计算方式: 方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度 实现类: org.apdplat.word.analysis.CosineTextSimilarity 用法如下: 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