一.下载中文维基百科数据https://dumps.wikimedia.org/zhwiki/
并使用gensim中的wikicorpus解析提取xml中的内容

二.利用opencc繁体转简体

三.利用jieba对转换后的文本进行分词,去停词

四.利用gensim中的word2vec训练分词后的文本

五.测试

python代码如下:

  1. #!/user/bin/python
  2. #coding:utf-8
  3. __author__ = 'yan.shi'
  4. from gensim.corpora import WikiCorpus
  5. import opencc
  6. import jieba
  7. import codecs
  8. from gensim.models import Word2Vec
  9. from gensim.models.word2vec import LineSentence
  10. import multiprocessing
  11.  
  12. '''
  13. 读取中文wiki语料库,并解析提取xml中的内容
  14. '''
  15. def dataprocess():
  16. space=b' '
  17. i=0
  18. output=open('E:\zhwiki-articles.txt','wb')
  19. wiki=WikiCorpus('E:\zhwiki-latest-pages-articles.xml.bz2',lemmatize=False,dictionary={})
  20. for text in wiki.get_texts():
  21. output.write(space.join(text)+b'\n')
  22. i=i+1
  23. if(i%10000==0):
  24. print('Saved '+str(i)+' articles')
  25. output.close()
  26. print('Finished Saved '+str(i)+' articles')
  27.  
  28. '''
  29. 加载停用词表
  30. '''
  31. def createstoplist(stoppath):
  32. print('load stopwords...')
  33. stoplist=[line.strip() for line in codecs.open(stoppath,'r',encoding='utf-8').readlines()]
  34. stopwords={}.fromkeys(stoplist)
  35. return stopwords
  36.  
  37. '''
  38. 过滤英文
  39. '''
  40. def isAlpha(word):
  41. try:
  42. return word.encode('ascii').isalpha()
  43. except UnicodeEncodeError:
  44. return False
  45.  
  46. '''
  47. opencc繁体转简体,jieba中文分词
  48. '''
  49. def trans_seg():
  50. stopwords=createstoplist('E:\stopwords.txt')
  51. cc=opencc.OpenCC('t2s')
  52. i=0
  53. with codecs.open('E:\zhwiki-segment.txt','w','utf-8') as wopen:
  54. print('开始...')
  55. with codecs.open('E:\wiki-utf8.txt','r','utf-8') as ropen:
  56. while True:
  57. line=ropen.readline().strip()
  58. i+=1
  59. print('line '+str(i))
  60. text=''
  61. for char in line.split():
  62. if isAlpha(char):
  63. continue
  64. char=cc.convert(char)
  65. text+=char
  66. words=jieba.cut(text)
  67. seg=''
  68. for word in words:
  69. if word not in stopwords:
  70. if len(word)>1 and isAlpha(word)==False: #去掉长度小于1的词和英文
  71. if word !='\t':
  72. seg+=word+' '
  73. wopen.write(seg+'\n')
  74. print('结束!')
  75.  
  76. '''
  77. 利用gensim中的word2vec训练词向量
  78. '''
  79. def word2vec():
  80. print('Start...')
  81. rawdata='G:\python workspace\zhwiki-segment.txt'
  82. modelpath='G:\python workspace\modeldata.model'
  83. #vectorpath='E:\word2vec\vector'
  84. model=Word2Vec(LineSentence(rawdata),size=400,window=5,min_count=5,workers=multiprocessing.cpu_count())#参数说明,gensim函数库的Word2Vec的参数说明
  85. model.save(modelpath)
  86. #model.wv.save_word2vec_format(vectorpath,binary=False)
  87. print("Finished!")
  88.  
  89. def wordsimilarity():
  90. model=Word2Vec.load('E:\word2vec\modeldata.model')
  91. semi=''
  92. try:
  93. semi=model.most_similar('日本'.decode('utf-8'),topn=10)#python3以上就不需要decode
  94. except KeyError:
  95. print('The word not in vocabulary!')
  96.  
  97. #print(model[u'日本'])#打印词向量
  98. for term in semi:
  99. print('%s,%s' %(term[0],term[1]))
  100.  
  101. if __name__=='__main__':
  102. #dataprocess()
  103. #trans_seg()
  104. #word2vec()
  105. wordsimilarity()

日本的相关词:

使用word2vec对中文维基百科数据进行处理的更多相关文章

  1. Windows下基于python3使用word2vec训练中文维基百科语料(二)

    在上一篇对中文维基百科语料处理将其转换成.txt的文本文档的基础上,我们要将为文本转换成向量,首先都要对文本进行预处理 步骤四:由于得到的中文维基百科中有许多繁体字,所以我们现在就是将繁体字转换成简体 ...

  2. Windows下基于python3使用word2vec训练中文维基百科语料(一)

    在进行自然语言处理之前,首先需要一个语料,这里选择维基百科中文语料,由于维基百科是 .xml.bz2文件,所以要将其转换成.txt文件,下面就是相关步骤: 步骤一:下载维基百科中文语料 https:/ ...

  3. Windows下基于python3使用word2vec训练中文维基百科语料(三)

    对前两篇获取到的词向量模型进行使用: 代码如下: import gensim model = gensim.models.Word2Vec.load('wiki.zh.text.model') fla ...

  4. 中文维基百科分类提取(jwpl)--构建知识图谱数据获取

    首先感谢 : 1.https://blog.csdn.net/qq_39023569/article/details/88556301 2.https://www.cnblogs.com/Cheris ...

  5. 使用JWPL (Java Wikipedia Library)操作维基百科数据

    使用JWPL (Java Wikipedia Library)操作维基百科数据 1. JWPL介绍 JWPL(Java Wikipedia Library)是一个开源的访问wikipeida数据的Ja ...

  6. 110G离线维基百科数据免费拿

    110G离线维基百科数据免费拿.. 资料获取方式,关注公总号RaoRao1994,查看往期精彩-所有文章,即可获取资源下载链接 更多资源获取,请关注公总号RaoRao1994

  7. 中英文维基百科语料上的Word2Vec实验

    最近试了一下Word2Vec, GloVe 以及对应的python版本 gensim word2vec 和 python-glove,就有心在一个更大规模的语料上测试一下,自然而然维基百科的语料进入了 ...

  8. JWPL工具处理维基百科wikipedia数据用于NLP

    JWPL处理维基百科数据用于NLP 处理zhwiki JWPL是一个Wikipedia处理工具,主要功能是将Wikipedia dump的文件经过处理.优化导入mysql数据库,用于NLP过程.以下以 ...

  9. 搜索和浏览离线 Wikipedia 维基百科(中/英)数据工具

    为什么使用离线维基百科?一是因为最近英文维基百科被封,无法访问:二是不受网络限制,使用方便,缺点是不能及时更新,可能会有不影响阅读的乱码. 目前,主要有两种工具用来搜索和浏览离线维基百科数据:Kiwi ...

随机推荐

  1. Shell脚本编程(一)

    shell 脚本编程(一) 1 . shell 的作用 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一 ...

  2. C++多线程基础学习笔记(一)

    下面分三个方面多线程技术的必须掌握一些基本知识. 1.进程 2.线程 3.并发 (1)进程 一个可执行程序运行起来了,即为创建了一个进程.如在电脑上打开了word,就创建了一个word进程,打开QQ, ...

  3. C++练习 | 不使用头插法逆转单链表

    void D(PBook pHead) { PBook p,q,s; p=pHead->next->next; q=p->next; s=q->next; pHead-> ...

  4. Memcached安装 常用指令

    Memcached 源码安装 # 安装依赖yum install -y gcc gcc-c++ automake autoconf make cmake libevent-devel.x86_64# ...

  5. stm32F429启动时钟配置

    STM32f429在启动时会在startup_stm32f429_439xx.s中调用static void SetSysClock(void)函数.默认使用的是25M晶振,把系统时钟设置为180M. ...

  6. Ansible 系统概述与部署

    Ansible 系统概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet但是有一个不同和优点是我们不需要在节点中安装 ...

  7. 关于echarts中南海诸岛的显示问题

    1.china.js 文件中  echarts.registerMap('china',    //名字要是'china',不能写成'中国'   2.echarts 配置中地图名称 mapName: ...

  8. spring boot本地开发与docker容器化部署的差异

    spring boot本地开发与docker容器化部署的差异: 1. 文件路径及文件名区别大小写: 本地开发环境为windows操作系统,是忽略大小写的,但容器中区分大小写 2. docker中的容器 ...

  9. JavaScript的数组方法(array)

    数组方法: 1. concat()  合并数组 2. join()  将数组的元素拼接成字符串,并指定分隔符 3. push()  往数组末尾添加一个元素,并返回新的数组的长度 4. reverse( ...

  10. python词云生成-wordcloud库

    python词云生成-wordcloud库 全文转载于'https://www.cnblogs.com/nickchen121/p/11208274.html#autoid-0-0-0' 一.word ...