两个list取交集_利用jieba计算两个句子的相似度
1、余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。
# -*- coding: utf-8 -*-
import jieba
import numpy as np
import redef get_word_vector(s1,s2):""":param s1: 句子1:param s2: 句子2:return: 返回句子的余弦相似度"""# 分词cut1 = jieba.cut(s1)cut2 = jieba.cut(s2)list_word1 = (','.join(cut1)).split(',')list_word2 = (','.join(cut2)).split(',')# 列出所有的词,取并集key_word = list(set(list_word1 + list_word2))# 给定形状和类型的用0填充的矩阵存储向量word_vector1 = np.zeros(len(key_word))word_vector2 = np.zeros(len(key_word))# 计算词频# 依次确定向量的每个位置的值for i in range(len(key_word)):# 遍历key_word中每个词在句子中的出现次数for j in range(len(list_word1)):if key_word[i] == list_word1[j]:word_vector1[i] += 1for k in range(len(list_word2)):if key_word[i] == list_word2[k]:word_vector2[i] += 1# 输出向量print(word_vector1)print(word_vector2)return word_vector1, word_vector2def cos_dist(vec1,vec2):""":param vec1: 向量1:param vec2: 向量2:return: 返回两个向量的余弦相似度"""dist1=float(np.dot(vec1,vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2)))return dist1def filter_html(html):""":param html: html:return: 返回去掉html的纯净文本"""dr = re.compile(r'<[^>]+>',re.S)dd = dr.sub('',html).strip()return ddif __name__ == '__main__':s1="很高兴见到你"s2="我也很高兴见到你"vec1,vec2=get_word_vector(s1,s2)dist1=cos_dist(vec1,vec2)print(dist1)
Building prefix dict from the default dictionary ...
Loading model from cache C:UsersxiaohuAppDataLocalTempjieba.cache
Loading model cost 0.903 seconds.
Prefix dict has been built succesfully.
[1. 1. 1. 1. 0. 0.]
[1. 1. 1. 1. 1. 1.]
0.8164965809277261
参考内容:
1、github 参考链接:https://github.com/ZhanPwBibiBibi/CHlikelihood
2、https://blog.csdn.net/sinat_26811377/article/details/107492381
两个list取交集_利用jieba计算两个句子的相似度相关推荐
- python两个list取交集_使用 Python 获取两个列表的交集、并集、差集的常用方法 | Jin''''s Blog...
在数据处理中经常需要使用 Python 来获取两个列表的交集,并集和差集.在 Python 中实现的方法有很多,我平时只使用一两种我所熟悉的,但效率不一定最高,也不一定最优美,所以这次想把常用的方法都 ...
- Python-两个列表取交集、并集、差集(编写了一个两个文件取交集的小工具)
最近突然有个需求(取两个文件数据的交集),数据量非常大(2000多万行的数据),最开始的思路是先取一个文件所有的数据,保存成一个列表,然后判断是否在另一个文件中,花了十几分钟写出来后,一运行,差点崩溃 ...
- jdk8两个List取交集、差集、并集(不去重)、并集(去重)
jdk8两个List取交集.差集.并集(不去重).并集(去重) /*** 交集* @param list1* @param list2* @return*/private static List< ...
- Python中两个list取交集、并集、差集以及为字符串str添加、插入特定字符的操作总结
Python中两个list取交集.并集.差集以及为字符串str添加.插入特定字符的操作总结 Python中两个list取交集.并集.差集 为字符串str添加.插入特定字符的操作总结 Python中两个 ...
- 【Java】对两个Set取交集,差集,并集
1.取交集(取两个集合中都存在的元素) HashSet<String> setA = new HashSet<>(); HashSet<String> setB = ...
- 计算机上差额如何计算公式,【】两个Excel表格之间怎么相加减 计算两个表格的差额???用什么公式??? 具体步骤怎么的...
excel表格如何在另一份表格中引用数据并进行加减 先在Sheet2的A1单元格入"=",再点一方的Sheet1工作表标签: ,Sheet1就会自动选上,无须手动输入(当然也可以输 ...
- 图算法(十四):关联预测算法(Link Prediction)【适用场景:用于社交网上的好友推荐、关系预测等】【给定两个节点,根据Jaccard度量方法计算两个节点的相似程度,预测他们之间的紧密关系】
一.概述 关联预测算法(Link Prediction)给定两个节点,根据Jaccard度量方法计算两个节点的相似程度,预测他们之间的紧密关系. 适用场景:关联预测算法(Link Prediction ...
- c++ 取两个链表的交集_使用C ++程序查找两个链表的交集
c++ 取两个链表的交集 Problem statement: Write a C++ program to find the intersection of two single linked li ...
- 双稳态电路的两个稳定状态是什么_利用SR锁存器实现SPDT开关消抖电路
SR锁存器常常被用来实现SPDT开关消抖,但在纳秒时域中它是如何实现的呢?Max Maxfield编辑一直试图找出应该在消抖软件中使用多长的等待状态才能可靠地消除一般的开关抖动(甚至最严重的抖动).本 ...
最新文章
- 丢失/root目录导致命令行-bash-4.1#,解决方法
- android程序退出 语句,android开发中continue,break、return的区别与使用
- 基于 Blazor 打造一款实时字幕
- SourceTree与git及AndroidStudio的联合使用详解(Windows系统)
- Python中用numpy进行图片处理
- 如何在EJB3中JNDI调用SessionBean(二)
- select模型(一 改进客户端)
- html模板里引入js函数的几种方法
- 数据库查询函数count搭配casewhen使用
- python抓取word里的拼音_[DIY]给word中的汉字批量加、修改拼音(word全篇加拼音)(旧版VBA程序,缺点比较多)...
- 测试网速和网站加载的速度 - Speedtest by Ookla
- Melancholy 题解
- 32位微型计算机能不能安装64位操作系统,32位cpu能装64位系统吗|32位cpu可以装64位系统吗...
- 苹果待处理订单要多久_iPhone12被电商平台下来,原来苹果又要玩“套路”
- Matplotlib-自定义虚线样式
- Cadence Orcad Capture全局修改元件属性方法及技巧图文及视频演示
- 2021年广州市学历入户全流程(持续更新)
- Python 自学笔记(三)
- 为什么电脑唯独搜不到自己家wifi?
- 哈工大-计算机系统-2022 | 大作业
热门文章
- 使用 Core Graphics 绘制基本形状
- non-overlapping-intervals
- 【转载】使用LR测试Oracle数据库的方法
- 2011 MVP大奖礼品包,那是相当的给力啊!!
- 程序员常见保健方法【转贴】
- OJ1035: 分段函数求值
- 信息学奥赛一本通 1107:校门外的树 | 1931:【05NOIP普及组】校门外的树 | OpenJudge NOI 1.6 06 | 洛谷 P1047 [NOIP2005 普及组] 校门外的树
- 信息学奥赛一本通 1023:Hello,World!的大小 | OpenJudge NOI 1.2 10
- 信息学奥赛一本通(1071:菲波那契数)
- 树形结构 —— 树与二叉树 —— 树的数据生成器