判断相似度

  • 基于jieba 关键字提取的方法
    • textrank
    • ·关键字的提取代码:
    • tf-idf
    • ·关键字的提取代码:
    • 统计数据
    • 统计数据的代码:
    • 完整代码:

基于jieba 关键字提取的方法

textrank

1,将待抽取关键词的文本进行分词
2,以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
3,计算图中节点的PageRank,注意是无向带权图

·关键字的提取代码:

#textrank
def testRank(corpus1, corpus2):keywords_textrank1 = jieba.analyse.textrank(corpus1, 15)    # 提取15个关键字keywords_textrank2 = jieba.analyse.textrank(corpus2, 15)return keywords_textrank1, keywords_textrank2

tf-idf

·词频(term frequency, tf) 指的是某一个给定的词语在该文件中出现的频率
·你想文档频率(inverse document frequency, idf)是一个词语普遍的重要性度量,某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取以10底的对数得到

·关键字的提取代码:

def Tfidf_extract(corpus1, corpus2):# tf-idfkeywords_tfidf1 = jieba.analyse.extract_tags(corpus1, 15)keywords_tfidf2 = jieba.analyse.extract_tags(corpus2, 15)return keywords_tfidf1, keywords_tfidf2

统计数据

用两篇文章提取关键字的交集除关键字的并集,得到一个简单的相似度分析

统计数据的代码:

def count_word(A, B):return round((len(set(A).intersection(set(B)))/len(set(A).union(set(B)))), 4)

完整代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:小皮
# datetime:2021/11/21 13:06
# software: PyCharm
import jieba.analyse#准备语料
corpus1 = "今天是星期日,中午我买了一个鸡腿"
corpus2 = "今天是星期一,中午我买了一杯可乐"#textrank
def testRank(corpus1, corpus2):keywords_textrank1 = jieba.analyse.textrank(corpus1, 15)keywords_textrank2 = jieba.analyse.textrank(corpus2, 15)return keywords_textrank1, keywords_textrank2def Tfidf_extract(corpus1, corpus2):# tf-idfkeywords_tfidf1 = jieba.analyse.extract_tags(corpus1, 15)keywords_tfidf2 = jieba.analyse.extract_tags(corpus2, 15)return keywords_tfidf1, keywords_tfidf2def count_word(A, B):return round((len(set(A).intersection(set(B)))/len(set(A).union(set(B)))), 4)corpus_ran1, corpus_ran2 = testRank(corpus1, corpus2)
corpus_tif1, corpus_tif2 = Tfidf_extract(corpus1, corpus2)print("相似度:", count_word(corpus1, corpus2))
print("相似度:", count_word(corpus_tif1, corpus_tif2))
# 相似度: 0.6316
# 相似度: 0.25

判断两篇文章的相似度相关推荐

  1. C++/JAVA 计算两篇文章的相似度

    C++/JAVA 计算两篇文章的相似度 这位少侠,要不要进店瞧瞧? 实验介绍及思路 问题描述: 编写程序,计算任意两篇文章的相似度. 基本思路: 利用余弦相似度来计算其相似度. 完整代码 C++ 代码 ...

  2. 【NLP学习笔记】文本相似度计算——判断两篇文章是否相似

    一.算法流程 (1)使用TF-IDF算法,提取出两篇文章的关键词: (2)每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使 ...

  3. [将小白进行到底] 如何比较两篇文章的相似度

    其实这个题目已经有很多人写过了,数学之美里就有,最近阮一峰的博客里也写了,本文基本上遵循的就是他的思路,只是让其看起来再小白一点点.其实说白了就是用自己的话,再把同样一件事描述一下,顺便扩扩句,把其中 ...

  4. php类似if,php 比较两篇文章的相似度的方法

    昨天说了一下php中的 similar_text() 函数,此函数可以比较两个字符串之间的相似度(以百分比计),但此函数在比较中文字符串时感觉不是那么的准确. 在网上搜索了一些php用户比较两个中文字 ...

  5. 【python 走进NLP】simhash 算法计算两篇文章相似度

    互联网网页存在大量的重复内容网页,无论对于搜索引擎的网页去重和过滤.新闻小说等内容网站的内容反盗版和追踪,还是社交媒体等文本去重和聚类,都需要对网页或者文本进行去重和过滤.最简单的文本相似性计算方法可 ...

  6. 【读书笔记】NeurIPS2018的两篇文章:The Tradeoffs of Large Scale Learning和Neural Ordinary Differential Equations

    今天看了 NeurIPS 2018 上的两篇文章,一篇是获得 best paper 的 Neural Ordinary Differential Equations (陈天奇的文章),一篇是获经典论文 ...

  7. 比较两篇文章的相似性方法

       对于这个题目,开始毫无头绪,后来经过查阅资料现在讲方法总结如下:   1.利用余弦定理    我们知道向量a,b之间的夹角可用余弦定理求得:              如果夹角的余弦值越小,那么 ...

  8. 目前需要开发出一个功能,对比查找并标注出两篇文章中类似的段落或者词句,有什么开源项目有这个功能吗? 其实有点像论文查重的功能,有论文查重的比较通用的开源项目推荐吗?...

    是的,你可以使用论文查重的工具来对比查找并标注两篇文章之间的相似段落或词句. 你可以尝试使用这些开源项目: MOSS (Measure Of Software Similarity):这是一个用于检测 ...

  9. OpenCV学习笔记——判断两张图的相似度

    判断两张图的相似度 方法 直方图对比法 ORB算法 实验 1.直方图对比法 参考如何使用OpenCV3直方图方法进行人脸相似度对比 因为我的环境是VS2010+OpenCV2.4.8,所以在原版的基础 ...

  10. 关于微服务的两篇文章以及Eventuate

    微服务相关的两篇文章,很多之前一知半解的概念与关系,看过之后,茅塞顿开! 微服务架构之事件驱动架构 http://m.blog.csdn.net/article/details?id=52537886 ...

最新文章

  1. GTD (Getting Things Done)时间管理 提高效率 简介
  2. 撒花!吴恩达新书《Machine Learning Yearning》完整中文版pdf开放下载
  3. 分享JavaScript开发实战经验
  4. 一文看懂PCA主成分分析
  5. “拼木头”算法挑战赛:禁忌搜索算法,用Javascript 跑
  6. Django报错NameError: name ‘ListView‘ is not defined
  7. linux 中kafka发送数据,C++ 向kafka中发送数据
  8. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(七)
  9. iOS 设计模式浅析 0 - 前言
  10. idea删除不用或者失效的jdk
  11. 【资源共享】SPI开发指南
  12. 小米6x更换关机音量键记录
  13. Java汉字转拼音实现方式
  14. 微信小程序实现选项卡切换功能
  15. 用户活跃/用户价值度分析
  16. 敏捷开发“松结对编程”实践之三:共同估算篇(大型研发团队,学习型团队,139团队,师徒制度,敏捷设计,估算扑克,扑克牌估算) .
  17. 【渝粤教育】电大中专消费者行为学30分钟交卷(1)作业 题库
  18. unity 点击UI显示3D爆炸特效
  19. 十万条评论告诉你《流浪地球》的1星都是谁打的?
  20. VDD、VCC、VSS的区别

热门文章

  1. iPhone 快捷指令 拼接长图
  2. 机甲 java_战神金刚3(机甲版)
  3. VBA操作CAD画一条直线
  4. Rust高并发编程总结
  5. Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境
  6. c语言正方形内切圆面积,c语言计算并输出某正方形内切圆的面积
  7. 1218 正方形还是圆形
  8. Codeforces Round #306 (Div. 2)
  9. HDFS—Web页面操作
  10. 微博十年,再次走到十字路口