一种基于word2vec的专利文本自动分类方法

著录项
  • CN201911210472.9
  • 20191202
  • CN111125304A
  • 20200508
  • 昆明理工大学
  • 薛金成;姜迪;吴建德;黄禹强;迟浩早田
  • G06F16/33
  • G06F16/33 G06F16/35 G06K9/62

  • 云南省昆明市五华区学府路253号
  • 云南(53)
摘要
本申请提供了一种基于word2vec的专利文本自动分类方法,包括:获取第一专利文本数据;对所述第一专利文本数据进行分词预处理,得到训练词向量所用的第二专利文本数据;使用word2vec模型对分词之后的所述第二专利文本数据进行训练,得到专利文本词向量;将待测文档的词汇与所述专利文本词向量进行映射,将文档所有词汇向量相加后求词平均值,得到文档的向量化表示;使用最近邻分类算法(KNN)对经过向量化表示的所述待分类文档进行分类,从而解决传统向量空间模型文本向量维度过高、不区分近义词的问题。
权利要求

1.一种基于word2vec的专利文本自动分类方法,其特征在于,包括:

获取第一专利文本数据;

对所述第一专利文本数据进行分词预处理,得到训练词向量所用的第二专利文本数据;

使用word2vec模型对分词之后的所述第二专利文本数据进行训练,得到专利文本词向量;

将待测文档的词汇与所述专利文本词向量进行映射,将文档所有词汇向量相加后求词平均值,得到文档的向量化表示;

使用最近邻分类算法对经过向量化表示的所述待分类文档进行分类。

2.根据权利要求1所述的基于word2vec的专利文本自动分类方法,其特征在于,所述获取第一专利文本数据还包括:

所述第一专利文本数据通过incopat专利数据库获得,获得的内容包括所述第一专利文本说明书摘要和主分类号。

3.根据权利要求1所述的基于word2vec的专利文本自动分类方法,其特征在于,所述对所述第一专利文本数据进行分词预处理还包括:

将专利文件的摘要部分通过python第三方库pandas读入,形成dataframe格式数据;

将所述dataframe格式数据转化为字符串列表list0,按行读取字符串列表l所述ist0并调用python第三方库jieba的精确模式实现中文分词,得到分词后的字符串列表list1;

读出所述list1中的所有不重复词汇生成专利词汇词典list2。

4.根据权利要求1所述的基于word2vec的专利文本自动分类方法,其特征在于,所述使用word2vec模型对分词之后的所述第二专利文本数据进行训练还包括:

统计所述list1中词的出现频率,删除出现频率小于2的词汇形成词汇列表list3;

通过one-hot方法将词汇词典的所述list2建立词汇索引;

将所述list3与所述list2中的相同词汇进行映射得到每篇文档的词汇索引;

选取窗口大小为5构建训练batch,词向量维数设置为100维;

对每个batch内词汇通过python第三方库numpy进行负采样训练,读出训练结束后的权重矩阵、即词向量文件。

5.根据权利要求4所述的基于word2vec的专利文本自动分类方法,其特征在于,所述使用word2vec模型对分词之后的所述第二专利文本数据进行训练还包括:

所述word2vec模型还可使用CBOW模式,其中,所述CBOW模式包括统计所述list1中词的出现频率,删除出现频率小于2的词汇形成词汇列表list3;

通过one-hot方法将词汇词典list2建立词汇索引;

将所述list3与所述list2中的相同词汇进行映射得到每篇文档的词汇索引;

选取窗口大小为5构建训练batch,词向量维数设置为100维;

对每个batch内词汇通过python第三方库numpy进行层次softmax训练,读出训练结束后的权重矩阵、即词向量文件。

6.根据权利要求1所述的基于word2vec的专利文本自动分类方法,其特征在于,所述将待测文档的词汇与所述专利文本词向量进行映射,将文档所有词汇向量相加后求词平均值,得到文档的向量化表示还包括:

将分词后的字符串列表所述list1与每一篇文档的标签映射得到映射后的数组char1;

按行读取所述char1,将所述char1中的词汇与词向量文件建立映射,得到文档的词向量数组char2;

将所述char2中在专利词汇词典所述list2中未出现的词汇用零向量表示;

将所述char2中每一篇文档分别求词平均值,得到所述char3。

7.根据权利要求6所述的基于word2vec的专利文本自动分类方法,其特征在于,所述使用最近邻分类算法对经过向量化表示的所述待分类文档进行分类还包括:

调用python第三方库sklearn的KNeighborsClassifier分类器,所述分类器K值设为500;

将所述char3传入所述分类器,得到分类结果。

8.根据权利要求6所述的基于word2vec的专利文本自动分类方法,其特征在于,还包括:

对所述待测文档进行分类的算法还可使用支持向量机算法。

9.根据权利要求8所述的基于word2vec的专利文本自动分类方法,其特征在于,所述向量机算法还包括:

调用python第三方库sklearn的SVC分类器;

将所述char3传入SVC分类器,得到分类结果。

说明书
技术领域

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

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

本发明要解决的技术问题是提供一种基于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类别

以上是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。

本文发布于:2024-09-21 04:28:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/68929.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议