Word2Vec提取关键词,词语相似度
来源:互联网 发布:网站搜索引擎优化方案 编辑:程序博客网 时间:2024/04/28 01:34
对于了解深度学习、自然语言处理NLP的读者来说,Word2Vec可以说是家喻户晓的工具,尽管不是每一个人都用到了它,但应该大家都会听说过它——Google出品的高效率的获取词向量的工具。
说到提取关键词,一般会想到TF-IDF和TextRank,大家是否想过,Word2Vec还可以用来提取关键词?而且,用Word2Vec提取关键词,已经初步含有了语义上的理解,而不仅仅是简单的统计了,而且还是无监督的!
链接: https://pan.baidu.com/s/1dF7oTH3 密码: uw4r
包含文件:word2vec_wx, word2vec_wx.syn1neg.npy, word2vec_wx.syn1.npy, word2vec_wx.wv.syn0.npy,4个文件都是Gensim加载模型所必需的。具体每个文件的含义我也没弄清楚,word2vec_wx大概是模型声明,word2vec_wx.wv.syn0.npy应该就是我们所说的词向量表,word2vec_wx.syn1.npy是隐层到输出层的参数(Huffman树的参数),word2vec_wx.syn1neg.npy就不大清楚了~
import systry: reload(sys) sys.setdefaultencoding('utf-8')except: passimport codecsfrom textrank4zh import TextRank4Keyword, TextRank4Sentencefrom gensim import models as gmodelimport pandas as pdmodel = gmodel.Word2Vec.load("./word2vec/word2vec_wx")#textrank算法查找text文本中num个关键词def GetKeyWords(text,num): tr4w = TextRank4Keyword() tr4w.analyze(text=text, lower=True, window=2) # py2中text必须是utf8编码的str或者unicode对象,py3中必须是utf8编码的bytes或者str对象 return tr4w.get_keywords(num, word_min_len=1)#textrank算法查找text文本中num个关键词中存在的关键短语def GetKeyPhrases(text,num): tr4w = TextRank4Keyword() tr4w.analyze(text=text, lower=True, window=2) # py2中text必须是utf8编码的str或者unicode对象,py3中必须是utf8编码的bytes或者str对象 return tr4w.get_keyphrases(keywords_num=num, min_occur_num= 2)#textrank算法查找text文本中num个关键句子def GetKeySentences(text,num): sentence = TextRank4Sentence() sentence.analyze(text=text,lower=True) s_list = sentence.get_key_sentences(num=num,sentence_min_len=5) return s_list#word2vec计算两个词的相似度 def ComputeWordSimilar(word1,word2): sim = model.similarity(word1, word2) return sim#word2vec计算两个词列表的相似度def ComputeWordListSimilar(list1, list2): list_sim = model.n_similarity(list1, list2) return list_sim##word2vec查找最相近的词def findMostSimilarWord(word): result = model.most_similar(word) return resultif __name__ == '__main__': text1 = codecs.open('01.txt', 'r', 'utf-8').read() text2 = codecs.open('02.txt', 'r', 'utf-8').read() #得到关键词 a=GetKeyWords(text1,10) print( '关键词:' ) ''' lista、listb 分别表示两个文本提取关键词的到的关键词集合 ''' listb=[] lista=[] for item in a: lista.append(item.word) print(item.word, item.weight) b=GetKeyWords(text2,10) print( '关键词2:' ) for item in b: listb.append(item.word) print(item.word, item.weight) #ComputeWordListSimilar() #得到关键词语 c=GetKeyPhrases(text1,20) d=GetKeyPhrases(text2,20) print('关键短语:' ) for phrase in c,d: print(phrase) # 导入模型 e=findMostSimilarWord([u'海贼王']) print(pd.Series(e)) f=ComputeWordSimilar(u'活动',u'掌握') print(f)
阅读全文
0 0
- Word2Vec提取关键词,词语相似度
- 基于word2vec的词语相似度计算
- Tensorflow练习2-Word2vec模型计算词语相似度
- 词语相似度计算:4、提取文本tf、tfidf特征
- TF-IDF提取关键词并用余弦算法计算相似度
- 词语相似度计算方法总结
- 利用知网数据计算词语相似度
- 词语语义相似度计算简介
- 举例说明利用《知网》计算词语相似度
- 举例说明利用《知网》计算词语相似度
- 词语相似度计算:6、实验报告
- 关于关键词提取,摘要提取的,及文本相似总结
- 词语相似度计算:2、使用NLTK和WordNet计算词语相似度
- 【python + word2vec】计算语义相似度
- Word2vec 计算两个文本之间相似度
- 若无云,岂有风——词语语义相似度计算简介
- 读《若无云,岂有风--词语语义相似度计算简介》
- 中文词语语义相似度计算算法概述
- 如何判断当前主机是物理机还是虚拟机?
- SpringMVC中如何获取Spring应用上下文环境
- 如何在神箭手上快速开发爬虫——第二课 如何爬取JS动态生成的数据【豌豆荚游戏排行榜】
- 数据库索引的实现原理
- 开源项目 Android-oss 的踩坑之旅
- Word2Vec提取关键词,词语相似度
- vim 相关命令
- I18n最简单部署使用
- 实现图片高斯模糊以及高斯模糊布局 (毛玻璃特效)
- JAVA动态代理详解
- React Native flexBox布局(一)
- L
- Jungle Roads 最小生成树(kruskal)
- springboot选择jdk还是cgilib的问题