中文自然语言处理--文档向量Doc2Vec
Doc2Vec 是 Mikolov 在 Word2Vec 基础上提出的另一个用于计算长文本向量的工具,Doc2Vec 将文档语料通过一个固定长度的向量表达。
from gensim.models.doc2vec import Doc2Vec, LabeledSentence
import jieba
from pprint import pprint# Doc2Vec 将文档语料通过一个固定长度的向量表达。
# 在 Gensim 库中,Doc2Vec 与 Word2Vec 都极为相似。
# 但两者在对输入数据的预处理上稍有不同,Doc2vec 接收一个由 LabeledSentence 对象组成的迭代器作为其构造函数的输入参数。
# 其中,LabeledSentence 是 Gensim 内建的一个类,它接收两个 List 作为其初始化的参数。
# Doc2Vec 也包括两种实现方式:DBOW(Distributed Bag of Words)和 DM (Distributed Memory)。
# 定义数据预处理类,作用是给每个文章添加对应的标签# 定义停用词、标点符号
punctuation = [",", "。", ":", ";", ".", "'", '"', "’", "?", "/", "-", "+", "&", "(", ")"]
sentences = ["长江是中国第一大河,干流全长6397公里(以沱沱河为源),一般称6300公里。流域总面积一百八十余万平方公里,年平均入海水量约九千六百余亿立方米。以干流长度和入海水量论,长江均居世界第三位。","黄河,中国古代也称河,发源于中华人民共和国青海省巴颜喀拉山脉,流经青海、四川、甘肃、宁夏、内蒙古、陕西、山西、河南、山东9个省区,最后于山东省东营垦利县注入渤海。干流河道全长5464千米,仅次于长江,为中国第二长河。黄河还是世界第五长河。","黄河,是中华民族的母亲河。作为中华文明的发祥地,维系炎黄子孙的血脉.是中华民族民族精神与民族情感的象征。","黄河被称为中华文明的母亲河。公元前2000多年华夏族在黄河领域的中原地区形成、繁衍。","在兰州的“黄河第一桥”内蒙古托克托县河口镇以上的黄河河段为黄河上游。","黄河上游根据河道特性的不同,又可分为河源段、峡谷段和冲积平原三部分。 ","黄河,是中华民族的母亲河。"]# 分词,去标点符号
sentences = [jieba.lcut(sen) for sen in sentences]
tokenized = []
for sentence in sentences:words = []for word in sentence:if word not in punctuation:words.append(word)tokenized.append(words)
print(tokenized)doc_labels = ["长江", "黄河", "黄河", "黄河", "黄河", "黄河", "黄河"]
class LabeledLineSentence(object):def __init__(self, doc_list, labels_list):self.labels_list = labels_listself.doc_list = doc_listdef __iter__(self):for idx, doc in enumerate(self.doc_list):yield LabeledSentence(words=doc, tags=[self.labels_list[idx]])# 上述语料每一句话当做一个文本,添加上对应的标签
iter_data = LabeledLineSentence(tokenized, doc_labels)
print(iter_data)
pprint(list(iter_data))# dm = 0 或者 dm=1 决定调用 DBOW 还是 DM
model = Doc2Vec(dm=1, size=100, window=8, min_count=1, workers=4)
# 模型开始训练之前需要对词汇表进行编译
model.build_vocab(iter_data)
# start_alpha为开始学习率,end_alpha与start_alpha 线性递减。
model.train(iter_data, total_examples=model.corpus_count, epochs=1000, start_alpha=0.01, end_alpha=0.001)# 根据标签找最相似的,这里只有黄河和长江,所以结果为长江,并计算出了相似度
print(model.docvecs.most_similar('黄河'))
print(model.docvecs.similarity('黄河','长江'))
原文:
https://soyoger.blog.csdn.net/article/details/108729409
中文自然语言处理--文档向量Doc2Vec相关推荐
- 【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
觉得有帮助请点赞关注收藏~~~ 一.文本向量化 文本向量化:将文本信息表示成能够表达文本语义的向量,是用数值向量来表示文本的语义. 词嵌入(Word Embedding):一种将文本中的词转换成数字向 ...
- 使用deeplearning4j训练Doc2Vec(文档向量)
本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 训练文档向量 在上一小节中,本人介绍了使用DeepLea ...
- doc2vec 文档向量
目录 1 目的和思想 2 模型原理 2.1 PV-DM(段落向量的分布式存储模型) 2.2 PV-DBOW (段落向量的分布式单词包版本) 3 doc2vec 总结 4 应用任务 1 目的和思想 do ...
- gnokii 短信猫 中文安装使用文档
gnokii 短信猫 中文安装使用文档 2010年11月19日 - admin 8月份做的一个东东,重新整理了一下发上来.当日后使用文档! 环境: centos 5.2,短信猫设备: wave 安装软 ...
- gnokii 中文安装使用文档
gnokii 中文安装使用文档 2010年11月19日 - admin 8月份做的一个东东,重新整理了一下发上来.当日后使用文档! 环境: centos 5.2,设备: wave 安装软件地址: ht ...
- iText创建一个含有中文的pdf文档
有朋友问我pdfbox支不支持向pdf文档中写入中文.然后试了好多遍都是有乱码,也找了好多资料没有找到解决办法. 但是在查找资料的过程中发现了另一个处理pdf的开源库iText.官方介绍 http:/ ...
- (转载)中文Appium API 文档
该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...
- Keras深度学习实战(26)——文档向量详解
Keras深度学习实战(26)--文档向量详解 0. 前言 1. 文档向量基本概念 2. 神经网络模型与数据集分析 2.1 模型分析 2.2 数据集介绍 3. 利用 Keras 构建神经网络模型生成文 ...
- 中文 Appium API 文档
该文档是Testerhome官方翻译的 源地址:https://github.com/appium/appium/tree/master/docs/cn 官方网站上的:http://appium.io ...
最新文章
- JavaScript创建对象的方法
- 如何打印一个Struct来调试
- 使用PYTORCH复现ALEXNET实现猫狗识别
- hihocoder 1689 - 推断大小关系(图论+二分)
- linux启动过程剖析,分析Linux系统的启动过程
- js简单动画:匀速动画、缓动动画、多物体动画以及透明度动画
- 浅谈构造函数(c#)
- SQLi-LABS Less-2,联合注入+报错注入
- .net中如何同步获取数据方式增加一样数据自动刷新列表_知客CRM如何对接微信公众号...
- Java编程:分治算法
- python作函数图像_如何使用python的matplotlib模块画余切函数图像
- 开源重磅分销版微信商城源码首发
- 记事本代码在命令行运行时出现的中文乱码问题
- 优化静态html页面速度的步骤好人方法,对网站速度优化的10个简单步骤
- Python基础知识笔记(三)——字典、集合
- Vue3.0实现原生高度可自定义菜单组件vue3-menus
- 读书笔记:《企业IT架构转型之道》
- 【Python黑科技】几行代码绘制gif动图(保姆级图文+实现代码)
- 电脑没有鼠标怎么打开计算机,电脑鼠标右键菜单没有打开方式选项怎么办
- LeetCode Weekly Contest 199