为什么要用这个?

因为看论文和博客的时候很常见,不论是干嘛的,既然这么火,不妨试试.

如何安装

  1. 从网上爬数据下来
  2. 对数据进行过滤、分词
  3. 用word2vec进行近义词查找等操作

完整的工程传到了我的github上了:https://github.com/n2meetu/word2vec.git

运行结果:

需要安装的包,可以用pycharm的preference:



点「+」加号



同样,点「+」加号。过一会儿会提示你安装是否成功的。

整个的文件结构:



-语料(网上爬下来的)

-自定义词典

-主要的python文件

主要的py文件:

  1. # -*- coding: utf-8-*-
  2. import jieba
  3. from gensim.models import word2vec
  4. # 去掉中英文状态下的逗号、句号
  5. def clearSen(comment):
  6. comment = comment.strip(' ')
  7. comment = comment.replace('、','')
  8. comment = comment.replace('~','。')
  9. comment = comment.replace('~','')
  10. comment = comment.replace('{"error_message": "EMPTY SENTENCE"}','')
  11. comment = comment.replace('…','')
  12. comment = comment.replace('\r', '')
  13. comment = comment.replace('\t', ' ')
  14. comment = comment.replace('\f', ' ')
  15. comment = comment.replace('/', '')
  16. comment = comment.replace('、', ' ')
  17. comment = comment.replace('/', '')
  18. comment = comment.replace(' ', '')
  19. comment = comment.replace(' ', '')
  20. comment = comment.replace('_', '')
  21. comment = comment.replace('?', ' ')
  22. comment = comment.replace('?', ' ')
  23. comment = comment.replace('了', '')
  24. comment = comment.replace('➕', '')
  25. return comment
  26. # 用jieba进行分词
  27. comment = open('./corpus/comment.txt').read()
  28. comment = clearSen(comment)
  29. jieba.load_userdict('./user_dict/userdict_food.txt')
  30. comment = ' '.join(jieba.cut(comment))
  31. # 分完词后保存到新的txt中
  32. fo = open("./corpus/afterSeg.txt","w")
  33. fo.write(comment)
  34. print("finished!")
  35. fo.close()
  36. # 用 word2vec 进行训练
  37. sentences=word2vec.Text8Corpus(u'./corpus/afterSeg.txt')
  38. # 第一个参数是训练语料,第二个参数是小于该数的单词会被剔除,默认值为5, 第三个参数是神经网络的隐藏层单元数,默认为100
  39. model=word2vec.Word2Vec(sentences,min_count=3, size=50, window=5, workers=4)
  40. y2=model.similarity(u"不错", u"好吃") #计算两个词之间的余弦距离
  41. print(y2)
  42. for i in model.most_similar(u"好吃"): #计算余弦距离最接近“滋润”的10个词
  43. print(i[0],i[1])
  44. # 训练词向量时传入的两个参数也对训练效果有很大影响,需要根据语料来决定参数的选择,好的词向量对NLP的分类、聚类、相似度判别等任务有重要意义

清洗数据的clearSen()不要笑。萌新就是这样很傻很粗暴的……

word2vec初探(用python简单实现)的更多相关文章

  1. Python简单爬虫入门三

    我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...

  2. Python简单爬虫入门二

    接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...

  3. 亲身试用python简单小爬虫

    前几天基友分享了一个贴吧网页,有很多漂亮的图片,想到前段时间学习的python简单爬虫,刚好可以实践一下. 以下是网上很容易搜到的一种方法: #coding=utf-8 import urllib i ...

  4. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  5. Selenium + PhantomJS + python 简单实现爬虫的功能

    Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...

  6. 【美妙的Python之中的一个】Python简单介绍及环境搭建

    美妙的Python之Python简单介绍及安装         简而言之: Python 是能你无限惊喜的语言,与众不同.             1.Python:                  ...

  7. PHP分页初探 一个最简单的PHP分页代码的简单实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  8. python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...

  9. python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序

    python简单的监控脚本-利用socket.psutil阻止远程主机运行特定程序 psutil是一个跨平台的库(http://code.google.com/p/psutil/),能够轻松的实现获取 ...

  10. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

随机推荐

  1. java-StringBuffer学习笔记

    字符串是敞亮,它们的值在创建之后不能更改字符串的内容一旦发生了变化,那么马上回创建一个新的对象 public class Demo1{ public static void main(String[] ...

  2. SpringBoot就是这么简单

    一.SpringBoot入门 今天在慕课网中看见了Spring Boot这么一个教程,这个Spring Boot作为JavaWeb的学习者肯定至少会听过,但我是不知道他是什么玩意. 只是大概了解过他是 ...

  3. java反射使用及性能比较

    环境准备 package com.lilei.pack09; public class Logger { public void show(){ System.out.println("he ...

  4. 15.C++-操作符重载

    首先回忆下以前学的函数重载 函数重载 函数重载的本质为相互独立的不同函数 通过函数名和函数参数来确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域中 类中的函数重载 ...

  5. mysql-proxy实现读写分离

    其中Amoeba for MySQL也是实现读写分离 环境描述:操作系统:CentOS6.5 32位主服务器Master:192.168.179.146从服务器Slave:192.168.179.14 ...

  6. Matlab绘图基础——散点生成三角网(TIN)

    %例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2));       %生成三角网 triplot(dt);hold on;   ...

  7. ibatis.net 入门demo 实现基本增删改查

    1.项目架构体系  DAO(数据访问层)   Domain(实体层)  Text(表示层) 2.比较重要的是需要添加两个dll的引用,以及两个配置文件和一个XML文件 两个 IbatisNet.Com ...

  8. python实现K聚类算法

    参考:<机器学习实战>- Machine Learning in Action 一. 基本思想  聚类是一种无监督的学习,它将相似的对象归到同一簇中.它有点像全自动分类.聚类方法几乎可以应 ...

  9. PTA题目的處理(四)

    题目7-3 求交错序列前N项和 1.实验代码 #include <stdio.h> //#include <stdlib.h> int main() { ,N; double ...

  10. 团队作业7——第二次项目冲刺(Beta版本12.04)

    1.当天站立式会议照片 本次会议内容:1:每个人汇报自己完成的工作.2:组长分配各自要完成的任务. 2.每个人的工作 黄进勇:项目整合,后台代码. 李勇:前台界面优化. 何忠鹏:数据库模块. 郑希彬: ...