基于wiki中文语料库的gensim模型使用方法以及R语言的调用方式

近期想要整理下硬盘里的东西,看到本科毕设做情感倾向分析相关的数据,想起当时使用gensim训练词向量模型训练了超级久,决定将训练好的模型上传到云空间,记录下怎么使用的,以防以后需要用到。

具体训练方式貌似应该不怎么需要用到就不细细理顺了,主要记录下使用方式。训练好的词向量模型已上传,有需要用的朋友可以自行下载:

链接:https://pan.baidu.com/s/1HWY_DtrKLebry3_LyFQKPA
提取码:4u1n

其实训练得到的gensim词向量模型有两种加载方式,这里就上传其中一个.vector文件的形式吧。顺便上传一个停用词表,用的是当时哈工大的一个停用词表,不知道现在有没有更新。

当时训练词向量模型还是2019年四月,因此训练的语料库是当时最新的wiki中文语料库,语料更新至2019年3月2日,包含语料334,014条。接下来介绍怎么使用gensim训练的word2vec词向量模型。当时训练模型是基于python进行训练的,所以用到的都是python代码。最近使用r开发算法愈发频繁,发现了一个可交互使用到r与python的方法,最后将会介绍怎么从r中加载并应用已训练好的词向量模型。

需要安装与加载的库

import numpy as np
import jieba
import gensim

加载模型

加载gensim训练的词向量模型有两种方法,一个是加载.model文件,一个是加载.vector文件。加载.model会要求要有几个.npy的文件。

# 加载wikizh.model
model = gensim.models.word2vec.Word2Vec.load('./model/wikizh.model')# 或者wikizh.vector:
model = gensim.models.KeyedVectors.load_word2vec_format('wikizh.vector')
model.init_sims(replace=True)

加载后就可以用这个模型对文本进行词向量转化啦~当时训练的词向量是个300维的向量,比如我们可以查询你好的词向量

hi = model['你好']

会得到一个300维的词向量:
其他操作可以看下gensim的相关资料。

文本语句的词向量转化

对于文本语句,首先需要对它进行分词操作,这里直接使用jieba进行分词即可。同时,需要进行停用词的处理,为了方便之后使用,将这些都写成了函数的形式。
首先是加载停用词表:

def getStopwords():"""获取停用词表这里使用哈工大停用词表"""stopwords = []with open('./dictionary/Hstopwords.txt', 'r', encoding = 'utf-8') as fp:stopwords_List = fp.readlines()for l in stopwords_List:stopwords.append(l.strip('\n'))return stopwordsstopwords = getStopwords()


对于文本通常是语句的形式,常用的处理方式是通过jieba进行分词操作。

# 文本分割
def sent2word(sentence):"""通过jieba进行文本分割,去除停用词input : sentence - 原文output :newSent - 进行文本分割并去除停用词的文本"""seg_List = jieba.cut(sentence)seg_Result = []for w in seg_List:seg_Result.append(w)new_Sent = list(filter(lambda x:x not in stopwords, seg_Result))return new_Sentsentence = '疫情快结束吧!'
words = sent2word(sentence)
print('sentence: ', sentence, 'to words: ', words)

输出结果

sentence:  疫情快结束吧! to words:  ['疫情', '快', '结束']

对于一个由词组成的列表,通过model获取它的词向量:

def getWordVecs(word_List):"""获取词向量input:word_List - 输入语句output:vecs - 语句对应的词向量"""vecs = []for word in word_List:word = word.replace('\n', '')try:vecs.append(model[word])except KeyError:continuereturn np.array(vecs, dtype = 'float')senVec = getWordVecs(words)


当时为了方便直接将文件转为词向量,写了一个函数:

def buildVecs(filename):"""构建文档词向量input:filename - 输入文档名output:file_Input - 文档对应的词向量"""file_Input = []with open(filename, 'r', encoding ='utf-8') as f:lines = f.readlines()for l in lines:l = l.strip('\n')l = sent2word(l)# print(l)result_List  = getWordVecs(l)# print(result_List)# for each sentence, the mean vector of all its vectors is used to represent this sentenceif len(result_List) != 0:result_Array = sum(np.array(result_List)) / len(result_List)file_Input.append(result_Array)return file_Input

这个对.txt之类的可能会方便写,.csv的话就更方便了,直接读取成DataFrame,对每一行进行转换即可。

R与python的交互

最后,由于最近经常需要用R开发,发现了一个R调用python超级好用的包,顺手写下怎么在R中调用Python。
首先需要安装reticulate以及写好的python代码,只需要将上面的函数放到一个代码里就好。在R中输入:

path <- 'yourFilePath'
setwd(path)library(reticulate)
source_python('./yourfile.py')

调用后,在python中写的函数与生成的变量都可以直接用。

使用方式与python中的一致,比如输出你好的词向量:

model['你好']

唯一的缺陷就是不能存储为.Rdata进行使用,存储后貌似都是空的东西。

以上就是关于wiki中文语料库的gensim模型使用方法以及R语言的调用方式的记录啦~

基于wiki中文语料库的gensim模型使用方法以及R语言的调用方式相关推荐

  1. r library car_基础方法 | 用R语言完成量化论文全流程示例!附超详细R脚本

    基础方法 ♪ Method R语言的优点 对于有一定数据分析基础的朋友们来说,要入门R语言并不是十分困难的.但是这毕竟是一门专业性很强的技术,我们当然希望投入精力掌握R语言之后能够得到相应的回报. 在 ...

  2. 基于模型的聚类和R语言中的高斯混合模型

    介绍 四种最常见的聚类方法模型是层次聚类,k均值聚类,基于模型的聚类和基于密度的聚类 . 最近我们被客户要求撰写关于聚类的研究报告,包括一些图形和统计输出. 可以基于两个主要目标评估良好的聚类算法: ...

  3. 毕业设计实用模型(四)——回归模型的实现(R语言)

    目录 0引言 1.课本介绍 1.1理论的书 1.2 R语言的书 2.构造数据 3.相关性分析 4.多元回归模型的建立 4.1建立模型 5.2模型分析 5.3方差分析表 5.变量选择 5.1 逐步回归 ...

  4. 用最酷的方法学习R语言

    1. 看大神怎么说 前几天去新疆培训,制作了R语言的基础教程,在翻阅资料时,看到了知乎张敬信关于R学习的观点,很是赞同. 张敬信老师写了一本书<R语言编程–基于tidyverse>,网址: ...

  5. spatialreg | 空间滞后模型、空间误差模型和空间杜宾模型简单形式的R语言实现...

    旧文重发,原文链接:https://mp.weixin.qq.com/s/pHRS9BfkCMe1uQOSkHmqAw 关于空间计量模型,小编是通过阅读勒沙杰(James LeSage)和佩斯(R.K ...

  6. r语言rank降序_常见排序分析方法及R语言实现

    常用排序分析方法 相信大家在做微生物多样性研究时经常听到PCA分析.PCoA分析,NMDS分析,CCA分析,RDA分析.它们对物种(或基因.功能)的分析具有重要作用,因而频频出现在16S测序及宏基因组 ...

  7. 函数_方法_的四种调用方式

    class Program{/// <summary>/// 无参数,无返回值/// </summary>/// <param name="args" ...

  8. R语言处理非线性回归模型C-D方程,使用R语言进行多项式回归、非线性回归模型曲线拟合...

    对于线性关系,我们可以进行简单的线性回归.对于其他关系,我们可以尝试拟合一条曲线.曲线拟合是构建一条曲线或数学函数的过程,它对一系列数据点具有最佳的拟合效果. 使用示例数据集#我们将使Y成为因变量,X ...

  9. 如何使用沃顿研究数据中心(WRDS,CRSP)查询美股历史交易数据(R语言的调用方法以及代码示例)

    https://wrds-web.wharton.upenn.edu/wrds/ WRDS 沃顿商学院金融系列数据库是由宾夕法尼亚大学沃顿商学院开发的金融领域的跨库研究工具,同时也包含Compusta ...

最新文章

  1. 一篇文章一张思维导图看懂Android学习最佳路线
  2. MYSQL 分析表、检查表和优化表
  3. 移除添加的文件_文件压缩教程-文件批量压缩
  4. middle函数C语言,C语言函数调用栈(三)
  5. Fedora-19安装texlive2013并配置中文
  6. latex常用的公式
  7. SpringCloud Consul 服务注册与发现
  8. PHP设计模式——概述
  9. 基于Python的简单数据挖掘
  10. Bilibili缓存视频在电脑端直接打开方式
  11. 熬夜人必看—iPhone屏幕亮度设置
  12. 钉钉企业应用网关接入(保姆级教程)
  13. 解决node-sass下载失败问题
  14. 【工具】Typora 自定义快捷键
  15. 常用的四拍子,八拍子
  16. 计算机网络安装系统怎么办,电脑不能连网要怎么解决?一定要重装系统?千万别再犯傻了!...
  17. 30岁买房只需记住一句话,永远不会出错!
  18. GOTS——商品中的化学品控制
  19. 涨薪申请多次被拒,去年我带的徒弟,今年工资比我还高2K,当天就裸辞走了...
  20. D17 STP生成数协议

热门文章

  1. R计算方差膨胀因子(VIF,Variance Inflation Factor)计算并解读VID与共线性(Multicollinearity)的关系实战
  2. window server2008下安装VS.NET2008
  3. Linux+MySQL+MyCat实现分库分表,通过MyCat数据库中间件实现分库分表配置实战
  4. #详细分析# MySQL的 commit 和 rollback 操作
  5. Mysql时间函数用法
  6. 记录Guava版本冲突而出现项目启动失败的问题
  7. U盘启动盘如何重装系统?U盘重装系统教程
  8. 一文读懂设计模式--策略模式
  9. 按照黑马教程学习javaWeb出现Property ‘dataSource‘ is requir报错HTTP Status 500 – Internal Server Error——解决方案
  10. UOJ#310 【UNR #2】黎明前的巧克力:FWT