博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算ngram距离-python实现【转载】
阅读量:5106 次
发布时间:2019-06-13

本文共 714 字,大约阅读时间需要 2 分钟。

转自:

def Ngram_distance(str1, str2, n=2):    tmp = ' ' * (n-1)    str1 = tmp + str1 + tmp#表示以首字母开头和本char结尾    str2 = tmp + str2 + tmp    set1 = set([str1[i:i+n] for i in range(len(str1)-(n-1))])    set2 = set([str2[i:i+n] for i in range(len(str2)-(n-1))])    setx = set1 & set2    len1 = len(set1)    len2 = len(set2)    lenx = len(setx)    num_dist = len1 + len2 - 2*lenx    num_sim = 1 - num_dist / (len1 + len2)    return set1,set2,{
'dist': num_dist, 'sim': num_sim}print(Ngram_distance('girl','girlfriend'))

输出结果:

({
'gi', 'ir', 'rl', 'l ', ' g'}, {
'gi', 'en', 'd ', 'ir', 'lf', 'ie', 'rl', 'fr', 'ri', ' g', 'nd'}, {
'dist': 8, 'sim': 0.5})

 

转载于:https://www.cnblogs.com/BlueBlueSea/p/11345117.html

你可能感兴趣的文章
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
java 类型转型
查看>>
基于C#编程语言的Mysql常用操作
查看>>
【转】Java反射 之 反射基础
查看>>
mysql数据库备份和还原的常用命令
查看>>
s3c2440实验---定时器
查看>>
HBase配置性能调优(转)
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
python中的字符编码
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
为什么int型最大的数是2147483647
查看>>