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) o…
简介 查看百度搜索中文文本聚类我失望的发现,网上竟然没有一个完整的关于Python实现的中文文本聚类(乃至搜索关键词python 中文文本聚类也是如此),网上大部分是关于文本聚类的Kmeans聚类的原理,Java实现,R语言实现,甚至都有一个C++的实现. 正好我写的一些文章,我没能很好的分类,我想能不能通过聚类的方法将一些相似的文章进行聚类,然后我再看每个聚类大概的主题是什么,给每个聚类一个标签,这样也是完成了分类. 中文文本聚类主要有一下几个步骤,下面将分别详细介绍: 切词 去除停用词 构建…
在知识图谱构建阶段的实体对齐和属性值决策.判断一篇文章是否是你喜欢的文章.比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知识.        这篇文章主要是先叙述VSM和余弦相似度相关理论知识,然后引用阮一峰大神的例子进行解释,最后通过Python简单实现百度百科和互动百科Infobox的余弦相似度计算. 一. 基础知识 第一部分参考我的文章: 基于VSM的命名实体识别.歧义消解和指代消解 第一步,向量空间模型VSM …
本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python下载地址:http://radimrehurek.com/gensim/models/word2vec.html 1.简介 參考:<Word2vec的核心架构及其应用 · 熊富林.邓怡豪,唐晓晟 · 北邮2015年>           <Word2vec的工作原理及应用探究 · 周练 ·…
1.余弦相似度可用来计算两个向量的相似程度 对于如何计算两个向量的相似程度问题,可以把这它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向.两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同.线段重合:如果夹角为90度,意味着形成直角,方向完全不相似:如果夹角为180度,意味着方向正好相反.因此,我们可以通过夹角的大小,来判断向量的相似程度.夹角越小,就代表越相似. 以二维空间为例,上图的a和b是两个向量,我们要计算它们的夹角θ.余弦定理告诉我们,可以用下…
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典.注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode. from snownlp import SnowNLP s = SnowNLP(u'这个东西真心很赞') s.wor…
向量空间模型VSM: VSM的介绍: 一个文档可以由文档中的一系列关键词组成,而VSM则是用这些关键词的向量组成一篇文档,其中的每个分量代表词项在文档中的相对重要性. VSM的例子: 比如说,一个文档有分词和去停用词之后,有N个关键词(或许去重后就有M个关键词),文档关键词相应的表示为(d1,d2,d3,...,dn),而每个关键词都有一个对应的权重(w1,w1,...,wn).对于一篇文档来说,或许所含的关键词项比较少,文档向量化后的向量维度可能不是很大.而对于多个文档(2篇文档或两篇文档以上…
夹角余弦(Cosine) 也可以叫余弦相似度. 几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异. (1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式: (2) 两个n维样本点a(x11,x12,-,x1n)和b(x21,x22,-,x2n)的夹角余弦        类似的,对于两个n维样本点a(x11,x12,-,x1n)和b(x21,x22,-,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度. 即:       …
python读入中文文本编码错误 python读入中文txt文本: #coding:utf-8 def readFile(): fp = open('emotion_dict//neg//neg_all_dict.txt','r') list = [] for line in fp: list.append(line) fp.close() print(list) readFile() 但是有时候会出现错误提示: UnicodeDecodeError: 'gbk' codec can't dec…
过余弦相似度算法计算两个字符串之间的相关度,来对关键词进行归类.重写标题.文章伪原创等功能, 让你目瞪口呆.以下案例使用的母词文件均为txt文件,两种格式:一种内容是纯关键词的txt,每行一个关键词就好:另一种是关键词加指数的txt,关键词和指数之前用tab键分隔,一行一对关键词. 代码附上: # -*- coding: utf-8 -*- from jieba import posseg import math import time def simicos(str1, str2): # 对两…