我想做一个基于人工智能的客服系统,利用Word2Vec训练出结束后,...
astText简而言之,就是把文档中所有词通过lookup table变成向量,取平均后直接用线性分类器得到分类结果。
fastText和ACL-15上的deep averaging network [1] (DAN,如下图)非常相似,区别就是去掉了中间的隐层。
两篇文章的结论也比较类似,也是指出对一些简单的分类任务,没有必要使用太复杂的网络结构就可以取得差不多的结果。
文中实验选取的都是对句子词序不是很敏感的数据集,所以得到文中的实验结果完全不奇怪。
但是比如对下面的三个例子来说:The movie is not very good , but i still like it . [2]The movie is very good , but i still do not like it .I do not like it , but the movie is still very good .其中第1、3句整体极性是positive,但第2句整体极性就是negative。
如果只是通过简单的取平均来作为sentence representation进行分类的话,可能就会很难学出词序对句子语义的影响。
从另一个角度来说,fastText可以看作是用window-size=1 + average pooling的CNN [3]对句子进行建模。
总结一下:对简单的任务来说,用简单的网络结构进行处理基本就够了,但是对比较复杂的任务,还是依然需要更复杂的网络结构来学习sentence representation的。
另外,fastText文中还提到的两个tricks分别是:hierarchical softmax类别数较多时,通过构建一个霍夫曼编码树来加速softmax layer的计算,和之前word2vec中的trick相同
如何用python安装woord2vector
gensim 用conda install gensim 与pip install gensim 安装是不同的 提示C编译器会更快,windows下装了 MinGW 中文wiki处理 gensim模块中有专门处理wiki语料的函数 中文分词还是用的jieba 因为wiki百科有繁体,简繁体转换用了 还有最开始程序运行有问题,发现了自己python的一个坏习惯,应该把程序写成函数 [python] view plain copy if __name__ == '__main__': my_function() 这样子python import这个文件就不会发生问题 [python] view plain copy# -*- coding: utf-8 -*- from gensim.corpora import WikiCorpus import jieba from langconv import * _author__ = 'Lust' # read the wiki.xml.bz2 # transform it to simplified Chinese (use langconv) # Chinese text segmentation(use jieba) # save it as txt def my_function(): space = " " i = 0 l = [] a = '..//data//zhwiki-latest-pages-articles.xml.bz2' f = open('..//data//reduce_zhiwiki.txt', 'w') wiki = WikiCorpus(a, lemmatize=False, dictionary={}) # texts = wiki.get_texts() for text in wiki.get_texts(): for temp_sentence in text: temp_sentence = Converter('zh-hans').convert(temp_sentence.decode('utf-8')) temp_sentence = temp_sentence.encode('utf-8') seg_list = list(jieba.cut(temp_sentence)) # for temp_term in temp_sentence: for temp_term in seg_list: l.append(temp_term.encode('utf-8')) f.write(space.join(l) + "\n") l = [] i = i + 1 print "Saved " + str(i) + " articles" # limit number of wikis if (i == 100): break f.close() if __name__ == '__main__': my_function() gensim中的word2vector 超级简单,一个函数的事情。
唯一要注意的是workers=multiprocessing.cpu_count()-4,如果不-4,win10会蓝屏,因为CPU总是100%,把电脑累蓝了?[python] view plain copy# -*- coding: utf-8 -*- from gensim.models import Word2Vec from gensim.models.word2vec import LineSentence import multiprocessing _author__ = 'Lust' # read the txt # word2vec it # save it as model and vector def my_function(): a = open('..//data//zhiwiki_news.txt', 'r') f_1 = open('..//result//zhiwiki_news.model', 'w') f_2 = open('..//result//zhiwiki_news.vector', 'w') model = Word2Vec(LineSentence(a), size=400, window=5, min_count=5, workers=multiprocessing.cpu_count()-4) model.save(f_1) model.save_word2vec_format(f_2, binary=False) if __name__ == '__main__': my_function() 使用训练好的模型 [python] view plain copy# -*- coding: utf-8 -*- import gensim _author__ = 'Lust' # read the news # Chinese text segmentation(use jieba) # add it to zhiwiki_news def my_function(): model = gensim.models.Word2Vec.load_word2vec_format("wiki.en.text.vector", binary=False) model.most_similar("man") model.similarity("woman", "girl") if __name__ == '__main__': my_function()
训练词向量有哪些算法
降维的方法Embedding Projector 提供了三种常用的数据降维(data dimensionality reduction)方法,这让我们可以更轻松地实现复杂数据的可视化,这三种方法分别是 PCA、t-SNE 和自定义线性投影(custom linear projections):PCA 通常可以有效地探索嵌入的内在结构,揭示出数据中最具影响力的维度。
t-SNE 可用于探索局部近邻值(local neighborhoods)和寻找聚类(cluster),可以让开发者确保一个嵌入保留了数据中的所有含义(比如在 MNIST 数据集中,可以看到同样的数字聚类在一起)。
自定义线性投影可以帮助发现数据集中有意义的「方向(direction)」,比如一个语言生成模型中一种正式的语调和随意的语调之间的区别——这让我们可以设计出更具适应性的机器学习系统。
Embedding Projector 这个工具使用起来很简单,它可以实现数据的 2D 或 3D 效果展示。
轻点鼠标,便可实现数据的旋转、缩放。
我们按照 word2vec 教程在 TensorFlow 上训练了一些词向量,将这些词向量通过我们的工具进行可视化展示,点击图中任意一点(表示词向量的点),那么通过这种算法算出的,与这个词语义相关的词以及其向量空间距离就会罗列出来。
它给我们提供了一种非常重要的探究算法性能的方法
Python培训需要学习哪些内容
老男孩教育Python课程内容:阶段一:Python开发基础 Python开发基础课程内容包括:计算机硬件、操作系统原理、安装linux操作系统、linux操作系统维护常用命令、Python语言介绍、环境安装、基本语法、基本数据类型、二进制运算、流程控制、字符编码、文件处理、数据类型、用户认证、三级菜单程序、购物车程序开发、函数、内置方法、递归、迭代器、装饰器、内置方法、员工信息表开发、模块的跨目录导入、常用标准库学习,b加密\re正则\logging日志模块等,软件开发规范学习,计算器程序、ATM程序开发等。
阶段二:Python高级级编编程&数据库开发 Python高级级编编程&数据库开发课程内容包括:面向对象介绍、特性、成员变量、方法、封装、继承、多态、类的生成原理、MetaClass、__new__的作用、抽象类、静态方法、类方法、属性方法、如何在程序中使用面向对象思想写程序、选课程序开发、TCP/IP协议介绍、Socket网络套接字模块学习、简单远程命令执行客户端开发、C\S架构FTP服务器开发、线程、进程、队列、IO多路模型、数据库类型、特性介绍,表字段类型、表结构构建语句、常用增删改查语句、索引、存储过程、视图、触发器、事务、分组、聚合、分页、连接池、基于数据库的学员管理系统开发等。
阶段三:前端开发 前端开发课程内容包括:HTML\CSS\JS学习、DOM操作、JSONP、原生Ajax异步加载、购物商城开发、Jquery、动画效果、事件、定时期、轮播图、跑马灯、HTML5\CSS3语法学习、bootstrap、抽屉新热榜开发、流行前端框架介绍、Vue架构剖析、mvvm开发思想、Vue数据绑定与计算属性、条件渲染类与样式绑定、表单控件绑定、事件绑定webpack使用、vue-router使用、vuex单向数据流与应用结构、vuex actions与mutations热重载、vue单页面项目实战开发等。
阶段四:WEB框架开发 WEB框架开发课程内容包括:Web框架原理剖析、Web请求生命周期、自行开发简单的Web框架、MTV\MVC框架介绍、Django框架使用、路由系统、模板引擎、FBV\CBV视图、Models ORM、FORM、表单验证、Django session & cookie、CSRF验证、XSS、中间件、分页、自定义tags、Django Admin、cache系统、信号、message、自定义用户认证、Memcached、redis缓存学习、RabbitMQ队列学习、Celery分布式任务队列学习、Flask框架、Tornado框架、Restful API、BBS+Blog实战项目开发等。
阶段五:爬虫开发 爬虫开发课程内容包括:Requests模块、BeautifulSoup,Selenium模块、PhantomJS模块学习、基于requests实现登陆:抽屉、github、知乎、博客园、爬取拉钩职位信息、开发Web版微信、高性能IO性能相关模块:asyncio、aiohttp、grequests、Twisted、自定义开发一个异步非阻塞模块、验证码图像识别、Scrapy框架以及源码剖析、框架组件介绍(engine、spider、downloader、scheduler、pipeline)、分布式爬虫实战等。
阶段六:全栈项目实战 全栈项目实战课程内容包括:互联网企业专业开发流程讲解、git、github协作开发工具讲解、任务管理系统讲解、接口单元测试、敏捷开发与持续集成介绍、django + uwsgi + nginx生产环境部署学习、接口文档编写示例、互联网企业大型项目架构图深度讲解、CRM客户关系管理系统开发、路飞学城在线教育平台开发等。
阶段七:数据分析 数据分析课程内容包括:金融、股票知识入门股票基本概念、常见投资工具介绍、市基本交易规则、A股构成等,K线、平均线、KDJ、MACD等各项技术指标分析,股市操作模拟盘演示量化策略的开发流程,金融量化与Python,numpy、pandas、matplotlib模块常用功能学习在线量化投资平台:优矿、聚宽、米筐等介绍和使用、常见量化策略学习,如双均线策略、因子选股策略、因子选股策略、小市值策略、海龟交易法则、均值回归、策略、动量策略、反转策略、羊驼交易法则、PEG策略等、开发一个简单的量化策略平台,实现选股、择时、仓位管理、止盈止损、回测结果展示等功能。
阶段八:人工智能 人工智能课程内容包括:机器学习要素、常见流派、自然语言识别、分析原理词向量模型word2vec、剖析分类、聚类、决策树、随机森林、回归以及神经网络、测试集以及评价标准Python机器学习常用库scikit-learn、数据预处理、Tensorflow学习、基于Tensorflow的CNN与RNN模型、Caffe两种常用数据源制作、OpenCV库详解、人脸识别技术、车牌自动提取和遮蔽、无人机开发、Keras深度学习、贝叶斯模型、无人驾驶模拟器使用和开发、特斯拉远程控制API和自动化驾驶开发等。
阶段九:自动化运维&开发 自动化运维&开发课程内容包括:设计符合企业实际需求的CMDB资产管理系统,如安全API接口开发与使用,开发支持windows和linux平台的客户端,对其它系统开放灵活的api设计与开发IT资产的上线、下线、变更流程等业务流程。
IT审计+主机管理系统开发,真实企业系统的用户行为、管理权限、批量文件操作、用户登录报表等。
分布式主机监控系统开发,监控多个服务,多种设备,报警机制,基于http+restful架构开发,实现水平扩展,可轻松...
转载请注明出处51数据库 » word2vec训练方法
旧人不覆48083924