import jieba from collections import Counter import difflib def edit_similar(str1,str2): len_str1=len(str1) len_str2=len(str2) taglist=np.zeros((len_str1+1,len_str2+1)) for a in range(len_str1): taglist[a][0]=a for a in range(len_str2): taglist[0][a] = a for i in range(1,len_str1+1): for j in range(1,len_str2+1): if(str1[i - 1] == str2[j - 1]): temp = 0 else: temp = 1 taglist[i][j] = min(taglist[i - 1][j - 1] + temp, taglist[i][j - 1] + 1, taglist[i - 1][j] + 1) return 1-taglist[len_str1][len_str2] / max(len_str1, len_str2) def cos_sim(str1, str2): co_str1 = (Counter(str1)) co_str2 = (Counter(str2)) p_str1 = [] p_str2 = [] for temp in set(str1 + str2): p_str1.append(co_str1[temp]) p_str2.append(co_str2[temp]) p_str1 = np.array(p_str1) p_str2 = np.array(p_str2) return p_str1.dot(p_str2) / (np.sqrt(p_str1.dot(p_str1)) * np.sqrt(p_str2.dot(p_str2))) def getdiff(text1,text2): # 其中的str1,str2并未分词,是两组字符串 #方法一 查找最大相同序列 result = difflib.SequenceMatcher(None, text1, text2).ratio() # 分词 str1 = jieba.lcut(text1) str2 = jieba.lcut(text2) #方法二 余弦相识度 cos_result = cos_sim(str1, str2) #方法三 编辑距离 edit_reslut = edit_similar(text1, text2) #result= cos_result * 0.3 + 0.7 * diff_result return result if __name__=='__main__': text1=''点电荷'' text2=''第二章,点电荷的场强'' getdiff(text1,text2)
相关推荐
中文问句相似度计算在问答系统中有着极其重要的作用,在人工智能还未能实现自动答案产出的现阶段,利用已有的问题-答案集,通过短问句的相似度计算方法,发现和用户查询意图最近接的问句,是问答系统研究的一个重要...
该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最邻近点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。另外还有一种 ...
该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最邻近点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。另外还有一种 ...
该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最邻近点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。另外还有一种 ...
其实《几何画板》中提供了通过键盘命令(几个标点符号键)直接输入几何图形的方法。 句号( 。 ) —— 绘制点 逗号( , ) —— 绘制圆 斜杠( / ) —— 绘制线(包括线段、射线和直线,它们各类型之间可通过重复点击来...
对具体性的解释:组成所有物资的电子、质子、中子是圆的、相同的,但是这些相同的东西组成的原子则有几百种不同。每次量的规模的添加,都导致特殊性的添加。对于软件来说,也是如此。如下的概念是母庸质疑的,软件...
经过十几年的发展,搜索引擎已经成为互联网的重要入口之一,Twitter联合创 始人埃文•威廉姆斯提出了“域名已死论”,好记的域名不再重要,因为人们会 通过搜索进入网站。搜索引擎排名对于中小网站流量来说至关重要...
42.图形文件中,哪几种格式的矢量图能被Flash直接引用? A. *.ai B. *.eps C. *.cdr D. *.wmf 43.下图中哪几项可以打开平滑与整平工具? A. 从附属选项中挑选 和 钮 B. 从附属选项中挑选 和 钮 C. 选取...
建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat): 软盘 ==...
有两种方法取得帮助信息:一是直接在命令窗口输入>>help 函数名;如help imread,会得到相应函数的有关帮助信息。二是在帮助窗口中查找相应信息。不同版本的帮助菜单界面有所不同,这只能依赖于你自己去熟悉了。但总体...
8.1 比较R 和MapReduce 集成的几种方法 8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值 8.3.2 Streaming、R 和完整的MapReduce 技术点58 计算股票的...
正则表达式里的分枝条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开。听不明白?没关系,看例子: 0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的...
6. 把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。 7. 标准...
一门语言的正式描述称为语法(grammar),ANTLR能够为该语言生成一个语法分析器,并自动建立语法分析树——一种描述语法与输入文本匹配关系的数据结构。ANTLR也能够自动生成树的遍历器,这样你就可以访问树中的...
join 7.3 本章小结8 结合R 和Hadoop 进行数据统计8.1 比较R 和MapReduce 集成的几种方法8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值8.3.2 Streaming...
有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子: ${r"/${data}"year""}屏幕输出结果为:/${data}"year" 转义 含义 ...
以及引入了命令行工具 Appcmd.exe ,给 Web 服务器的日常管理、监视和配置提供了除图形接口外的另一种方式,更为简单、高效。 同Windows XP一样,在Windows Vista的默认设置下,IIS (Internet 信息服务) 7.0未予安装...
11.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 结.137 第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146 第十三章 事件和索引指示器 .148 ...
这个项目可控制DRAM作用指令与读取/写入指令之间的延迟时间,有2,3,4几种选择。数值越小,性能越好。 DRAM RAS# Precharge: 这个项目是用来控制当预充电(precharge)指令送到DRAM之后,频率等待启动的等待...
<br>实验二 单链表结构及计算 实验目的: 通过实验掌握下列知识: 1、熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2、继续熟悉VC编程、编译和调试环境; 内容及步骤:...