python word2vec skipgram 负采样_一种基于word2vec的专利文本自动分类方法与流程

本发明提出一种基于word2vec的专利文本自动分类方法,解决传统向量空间表示法的不足。通过word2vec模型(skipgram或cbow模式)训练专利词汇词向量,利用词向量平均表示文档,结合knn或svm分类算法进行专利文本分类,提高分类准确性。
摘要由CSDN通过智能技术生成

本发明涉及计算机自然语言处理领域,尤其是涉及一种基于word2vec的专利文本的自动分类方法。

背景技术:

:专利文本自动分类属于自然语言处理(nlp)领域中的文本自动分类范畴。其一般过程包括:数据预处理、文本特征表示、分类器选择几个步骤,目前最为主流的特征表示方法为向量空间表示法(vsm)。但向量空间模型有着表示向量维数过高,无法区分近义词的问题,其采用one-hot编码方式,即将所有待分类文档的不重复词汇全部提取出来形成词典,词汇的向量长度为词典中词的个数,将词汇出现在词典位置的分量记为1,其余全部置零,如“芯片”的one-hot表示为[000010000…],“处理器”表示为[010000000…],因此此种表示方法无法体现“芯片”跟“处理器”词汇之间的相似性且向量高维、稀疏。而专利文件往往包含了众多的技术专有名词,不同的词汇属于同一

技术领域:

,且专利文本摘要篇幅较短,包含的语义特性较少。使用传统的向量空间表示法进行专利文本的分类难以得到满意的结果。技术实现要素:本发明要解决的技术问题是提供一种基于word2vec的专利文本自动分类方法,用以解决上述问题。本发明的技术方案是:一种基于word2vec的专利文本自动分类方法,包括:获取第一专利文本数据;对所述第一专利文本数据进行分词预处理,得到训练词向量所用的第二专利文本数据;使用word2vec模型对分词之后的所述第二专利文本数据进行训练,得到专利文本词向量;将待测文档的词汇与所述专利文本词向量进行映射,将文档所有词汇向量相加后求词平均值,得到文档的向量化表示;使用最近邻分类算法(knn)对经过向量化表示的所述待分类文档进行分类。其中,所述专利文本数据通过incopat专利数据库获得,获得的内容包括所述第一专利文本说明书摘要和主分类号;其中,将专利文件的摘要部分通过python第三方库pandas读入,形成dataframe格式数据;将所述dataframe格式数据转化为字符串列表list0,按行读取字符串列表l所述ist0并调用python第三方库jieba的精确模式实现中文分词,得到分词后的字符串列表list1;读出所述list1中的所有不重复词汇生成专利词汇词典list2。其中,统计所述list1中词的出现频率,删除出现频率小于2的词汇形成词汇列表list3;通过one-hot方法将词汇词典的所述list2建立词汇索引;将所述list3与所述list2中的相同词汇进行映射得到每篇文档的词汇索引;选取窗口大小为5构建训练batch,词向量维数设置为100维;对每个batch内词汇通过python第三方库numpy进行负采样训练,读出训练结束后的权重矩阵、即词向量文件;其中,所述word2vec模型还可使用cbow模式,其中,所述cbow模式包括统计所述list1中词的出现频率,删除出现频率小于2的词汇形成词汇列表list3;通过one-hot方法将词汇词典list2建立词汇索引;将所述list3与所述list2中的相同词汇进行映射得到每篇文档的词汇索引;选取窗口大小为5构建训练batch,词向量维数设置为100维;对每个batch内词汇通过python第三方库numpy进行层次softmax训练,读出训练结束后的权重矩阵、即词向量文件;其中,将分词后的字符串列表所述list1与每一篇文档的标签映射得到映射后的数组char1;按行读取所述char1,将所述char1中的词汇与词向量文件建立映射,得到文档的词向量数组char2;将所述char2中在专利词汇词典所述list2中未出现的词汇用零向量表示;将所述char2中每一篇文档分别求词平均值,得到所述char3。其中,调用python第三方库sklearn的kneighborsclassifier分类器,所述分类器k值设为500;将所述char3传入所述分类器,得到分类结果。其中,对待测文档进行分类的算法还可使用支持向量机算法(svm)。其中,所述“向量机算法(svm)”还包括调用python第三方库sklearn的svc分类器;将所述char3传入svc分类器,得到分类结果。本发明的有益效果是:随着深度学习的发展,词向量模型被越来越多的应用于自然语言处理领域。该模型可以很好的解决传统向量空间模型文本向量维度过高、不区分近义词的问题。它可以将词汇映射到一个维数较低且稠密的向量空间中,词与词之间的相似程度体现为向量在空间上的距离远近,因而被越来越广泛的应用于自然语言处理领域中。附图说明图1是本发明实施例提供的流程图;图2是本发明实施例提供的具体步骤流程图;图3是本发明实施例提供的word2vec模型训练结构图;图4是本发明实施例提供的词向量表示词汇相似度效果图。具体实施方式下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参照图1,s101,获取第一专利文本数据。具体的,所述专利文本数据通过incopat专利数据库获得,获得的内容包括所述第一专利文本说明书数据(去掉数据俩字)摘要和主分类号;例如,通过incopat专利数据库按照ipc分类标准分类号检索f03c,含义为机械领域中液体发动机组别的专利文件,得到ipc主分类号中部和组为f03c的专利文件10000篇,获得的内容包括专利文件的说明书摘要部分和主分类号部分。s103,对所述第一专利文本数据进行分词预处理,得到训练词向量所用的第二专利文本数据。具体的,对所述第一专利文本数据进行分词预处理包括以下步骤:将专利文件的摘要部分通过python第三方库pandas读入,pandas为使用python语言的数据处理工具库,形成pandas进行数据处理时所要求的dataframe格式数据;将所述dataframe格式数据转化为字符串列表list0,按行读取所述字符串列表list0并调用python第三方库jieba的精确模式实现中文分词,得到分词后的字符串列表list1;读出所述list1中的所有不重复词汇生成专利词汇词典list2。其中dataframe格式数据为记载了说明书摘要部分和主分类号部分的表格文件,形如:说明书摘要主分类号一种机械臂发明一f03c一种传动轴发明二f03c一种油缸发明三f03c字符串列表list0为将dataframe格式数据中说明书摘要部分读取出来并存入数组之后形成的字符串列表数据,形如:[一种机械臂发明一;一种传动轴发明二;一种油缸发明三]字符串列表list1为经过使用python语言进行中文分词功能的jieba工具库对list0进行分词之后形成的字符串列表数据,形如:[一种机械臂发明一;一种传动轴发明二;一种油缸发明三]字符串列表list2为统计list1中所有不重复词汇形成的字符串列表文件,形如:[一种机械臂发明一传动轴二油缸三]s105,使用word2vec模型对分词之后的所述第二专利文本数据进行训练,得到专利文本词向量。具体的,包括以下步骤:统计所述list1中词的出现频率,删除出现频率小于2的词汇形成词汇列表list3;通过one-hot方法将词汇词典的所述list2建立词汇索引;将所述list3与所述list2中的相同词汇进行映射得到每篇文档的词汇索引(这句话不对,要去掉);选取窗口大小为5构建训练batch,词向量维数设置为100维;对每个batch内词汇通过python第三方库numpy设置训练模式为skip-gram进行负采样训练,读出训练结束后的权重矩阵、即词向量文件;可选的,所述word2vec模型还可使用cbow模式,其中,所述cbow模式包括统计所述list1中词的出现频率,删除出现频率小于2的词汇形成词汇列表list3;通过one-hot方法将词汇词典list2建立词汇索引;将所述list3与所述list2中的相同词汇进行映射得到每篇文档的词汇索引;选取窗口大小为5构建训练batch,词向量维数设置为100维;对每个batch内词汇通过python第三方库numpy进行层次softmax训练,读出训练结束后的权重矩阵、即词向量文件。list3为去除list2中词汇出现频率小于2的字符串列表文件;建立索引之后的list2形如:[一种1机械臂2发明3一4传动轴5二6油缸7三8]则词汇“传动轴”的one-hot向量表示为(00001000).词向量文件形如:[一种1.4567,2.3466,3.23987,……….机械臂0.23974,0.23987,-1.39899…….发明2.248,4.203947,0.2345,…………..…………]s107,将待测文档的词汇与所述专利文本词向量进行映射,将文档所有词汇向量相加后求词平均值,得到文档的向量化表示。设文档集中的一篇文档di={w1…wk},词汇wi映射的词向量为si={ji1…jim},则该文档的向量化表示为:具体的,将分词后的字符串列表所述list1与每一篇文档的标签映射得到映射后的数组char1;按行读取所述char1,将所述char1中的词汇与词向量文件建立映射,得到文档的词向量数组char2;将所述char2中在专利词汇词典所述list2中未出现的词汇用零向量表示;将所述char2中每一篇文档分别求词平均值,得到所述char3。char1形如:[一种机械臂发明一;f03c一种传动轴发明二;f03c一种油缸发明三;f03c]char2形如[1.4567,2.3466,3.23987,……….;0.23974,0.23987,-1.39899…….;2.248,4.203947,0.2345,………;………..……………………]char3形如:[均值……………………]s109,使用最近邻分类算法(knn)对经过向量化表示的所述待分类文档进行分类。具体的,调用python第三方库sklearn的kneighborsclassifier分类器,所述分类器k值设为500;将所述char3传入所述分类器,得到分类结果。可选的,对所述待测文档进行分类的算法还可使用支持向量机算法(svm)。具体的,向量机算法(svm)步骤如下,调用python第三方库sklearn的svc分类器;将所述char3传入svc分类器,得到分类结果。将char3传入分类器,得到待测文本是否属于fo3c类别以上是本申请的优选实施方式,应当指出,对于本

技术领域:

的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。当前第1页1&nbsp2&nbsp3&nbsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值