word2vec_文本相似度
#提取关键词
#关键词向量化
#相似度计算 from jieba import analyse
import numpy
import gensim # 实现给出任意字符串,获取字符串中某字符的位置以及出现的总次数
def get_char_pos(string,char):
chPos=[]
try:
chPos=list(((pos,char) for pos,val in enumerate(string) if(val == char)))
except:
pass
return chPos
#提取关键词
def keyword_extract(data,filename):
tfidf=analyse.extract_tags
keywords=tfidf(data)
return keywords
#将文档的每句话进行关键词提取,并将结果保存在txt文件中
def getKeywords(docpath,savepath):
with open(docpath,'r',encoding='utf-8') as docf,open(savepath,'w',encoding='utf-8') as outf:
for data in docf:#每句话
data=data[:len(data)-1]
keywords=keyword_extract(data,savepath)
for word in keywords:
outf.write(word+'/')
outf.write('\n ')
#利用训练好的词向量获取关键词的词向量
import codecs
def word2vec(file_name,model): DataFile = codecs.open(file_name, "r",encoding='utf-8')
DataSet = DataFile.readlines()[:-1] wordvec_size =100
word_vec_all = numpy.zeros(wordvec_size) for data in DataSet:# space_pos=get_char_pos(data,'/')
first_word=data[0:space_pos[0][0]]
if first_word in model: word_vec_all=word_vec_all+model[first_word] for i in range(len(space_pos)-2):
word=data[space_pos[i][0]:space_pos[i+1][0]] try:
c=model[word] except KeyError:
c=0
word_vec_all=word_vec_all+c return word_vec_all
#词向量相似度计算代码:余弦
def simlarityCalu(vector1,vector2):
vector1Mod=numpy.sqrt(vector1.dot(vector1))
vector2Mod=numpy.sqrt(vector2.dot(vector2))
if vector2Mod!=0 and vector1Mod!=0:
simlarity=(vector1.dot(vector2))/(vector1Mod*vector2Mod)
else:
simlarity=0
return simlarity if __name__=='__main__':
#下载模型
model=gensim.models.Word2Vec.load('zhiwiki_news.word2vec')
p1='P1.txt'
p2='P2.txt'
p1_keywords='P1_keyword.txt'
p2_keywords = 'P2_keyword.txt'
#获取关键词
getKeywords(p1,p1_keywords)
getKeywords(p2,p2_keywords)
p1_vec=word2vec(p1_keywords,model)
p2_vec=word2vec(p2_keywords,model)
#计算相似度
print(simlarityCalu(p1_vec,p2_vec))
word2vec_文本相似度的更多相关文章
- NLP点滴——文本相似度
[TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...
- TF-IDF 文本相似度分析
前阵子做了一些IT opreation analysis的research,从产线上取了一些J2EE server运行状态的数据(CPU,Menory...),打算通过训练JVM的数据来建立分类模型, ...
- 文本相似度算法——空间向量模型的余弦算法和TF-IDF
1.信息检索中的重要发明TF-IDF TF-IDF是一种统计方法,TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分 ...
- 【机器学习】使用gensim 的 doc2vec 实现文本相似度检测
环境 Python3, gensim,jieba,numpy ,pandas 原理:文章转成向量,然后在计算两个向量的余弦值. Gensim gensim是一个python的自然语言处理库,能够将文档 ...
- 文本离散表示(三):TF-IDF结合n-gram进行关键词提取和文本相似度分析
这是文本离散表示的第二篇实战文章,要做的是运用TF-IDF算法结合n-gram,求几篇文档的TF-IDF矩阵,然后提取出各篇文档的关键词,并计算各篇文档之间的余弦距离,分析其相似度. TF-IDF与n ...
- 从0到1,了解NLP中的文本相似度
本文由云+社区发表 作者:netkiddy 导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是, ...
- C# 比较两文本相似度
这个比较文本用到的主要是余弦定理比较文本相似度,具体原理右转某度,主要适用场景是在考试系统中的简答题概述,可根据权重自动打分,感觉实用性蛮广的. 先说下思路: 文本分词,中文于英文不同,规范的英文每个 ...
- NLP文本相似度
NLP文本相似度 相似度 相似度度量:计算个体间相似程度 相似度值越小,距离越大,相似度值越大,距离越小 最常用--余弦相似度: 一个向量空间中两个向量夹角的余弦值作为衡量两个个体之间差异的大小 余 ...
- 【NLP】Python实例:基于文本相似度对申报项目进行查重设计
Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...
随机推荐
- unittest测试
标签(空格分隔): unittest unittest介绍: python里面也有单元测试框架-unittest,相当于是一个python版的junit. 一.unittest简介 1.先导入unit ...
- date命令转换日期命令提示date: illegal time format
问题:运行date命令抛错 date -j -f "%a %b %d %T %Z %Y" "Sat Sep 29 11:33:00 CST 2018" &quo ...
- thymeleaf 在js中获取message信息或获取后台属性
<script th:inline="javascript"> /*<![CDATA[*/ [[#{message1}]] [[${abc}]] /*]]> ...
- 数据库类型空间效率探索(四)-tinyint与enum与set
mysql> select count(*) from userinfo;+----------+| count(*) |+----------+| 115597 |+----------+1 ...
- postman发送json请求
简介: postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get.post.put等各种请求. 发送json的具体步骤: 1.选择post请求方式,同时将heade ...
- javaWEB登录ajax传值
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Unity2017五子棋大战_人机_双人_UNET联网
五子棋大战源码工程基于Unity2017.2进行开发,分为人机.双人.UNET网络三种对战方式,配有案例讲解视频, 其中人机五子棋AI有三种开发难度,欢迎有兴趣的同学加入学习! . 目录 000-展示 ...
- 监测多个textFiled.text的长度同时不小于0
#pragma mark - 显示超过11位不让输入 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange: ...
- 通过docker-compose构建ghost博客(二)
上一篇通过yml文件构建 ghost博客,这次通过构建nginx服务,并添加反向代理来运行搭建的ghost博客. 目录结构 ghost.conf 就是 定义的nginx 加载的配置文件 server ...
- selenium无界面chromedriver
chromeDriver下载地址:http://chromedriver.storage.googleapis.com/index.html 谷歌浏览器Chrome和驱动程序的对照表https://b ...