python 2 计算字符串 余弦相似度
2024-10-08 06:55:08
def get_ord_list(str):
return [ord(i) for i in str]
def calcu_approx(str1,str2):
def dot(A,B):
return (sum(a*b for a,b in zip(A,B)))
def cosine_similarity(a,b):
return dot(a,b) / ( (dot(a,a) **.5) * (dot(b,b) ** .5) )
ord_list1 = get_ord_list(str1)
ord_list2 = get_ord_list(str2)
max_ord = max(max(ord_list1),max(ord_list2))+1
print ord_list1,ord_list2,max_ord
ord_dense_list1 = [0]*max_ord
ord_dense_list2 = [0]*max_ord
for i in ord_list1:
ord_dense_list1[i] = 1
for i in ord_list2:
ord_dense_list2[i] = 1
return cosine_similarity(ord_dense_list1,ord_dense_list2)
s1 = u'我是中国人'
s2 = u'我是美国人'
print calcu_approx(s1,s2) # 0.8
最新文章
- WPF - 属性系统 (2 of 4)
- ADO.net数据绑定
- 笔记26-徐 SQLSERVER内存分配和常见内存问题
- google protocol buffer 使用说明
- EasyUI Tree判断节点是否是叶
- python实现简单爬虫抓取图片
- SQL server 2008数据库的备份与还原(转)
- SharePoint开发 - 自定义导航菜单(二)母版页的菜单应用
- ecmall二次开发 直接实例化mysql对象
- 使用PHP预定义变量得到url地址及相关参数
- 快速解决PDF文档加密不能打印问题_百度经验
- Nagios+pnp4nagios+rrdtool 安装配置nagios(一)
- 浅析Java中的final关键字(转)
- TCP的核心系列 — SACK和DSACK的实现(四)
- pythone函数基础(13)发送网络请求
- VMware虚拟机将英文改成中文的方法
- OpenWrt启动过程分析+添加自启动脚本【转】
- Ribbon 负载均衡机制
- JVM内部细节之二:偏向锁(Biased Locking)
- Redis以服务的形式启动
热门文章
- 1061 判断题 (15 分)C语言
- Win10该文件没有与之关联的应用来执行该操作...请在";默认应用设置";页面中创建关联
- 用Decorator实现依赖注入,像Java一样写后台
- Markdown 复杂公式&;常用符号
- cogs 3. 服务点设置 dijkstra
- Django AJAX csrf
- 【javaScript】获取某年某月的的最后一天(即当月天数) 妙用
- 电脑开机后多了OneKey Ghost启动选项怎么解决
- Excel.Application使用手册
- spring cloud 与 docker 读书笔记 1