一种领域新词抽取的方法

文档序号:10724865阅读:216来源:国知局
一种领域新词抽取的方法
【专利摘要】本发明公开了一种利用word2vec与Bootstrapping迭代相结合的领域新词抽取方法,该方法首先对领域语料进行预处理,再利用n?gram对预处理得到的领域文本进行切分,统计切分得到的字符串的词频、左右邻字个数、左右字熵以及互信息六维统计量,结合kmeans设置一组参数,进行初步评价,过滤得到第一轮结果,再由word2vec训练得到的词向量空间和一组领域种子数据,通过分别计算每个候选词与种子集合的余弦相似度之和,设定总和阈值进行再评价,从而抽取出该领域的新词。本发明适用于大规模领域语料的新词抽取,并具有良好的可移植性。本发明从根本上解决了动宾结构、叠词等非领域词的过滤难题。
【专利说明】
一种领域新词抽取的方法
技术领域
[0001] 本发明涉及自然语言处理的新词发现领域,尤其是一种领域新词抽取的方法。
【背景技术】
[0002] 随着互联网技术的飞速发展,大量新词语不断涌现。包括专有名词、派生词、方言 词语、行业用词、音译词、外来字母词、港台用词以及其他领域的相关术语词,这些词称为新 1·^] 〇
[0003] 中文分词是大多信息检索系统的基础,然而现有的分词算法无法做到对全部领域 新词的覆盖,这时就需要借助用户字典提高分词准确率,从而提高检索系统的质量,可见及 时发现和更新领域新词具有重要意义。
[0004] 传统的新词发现研究主要集中在专有名词识别上,如利用隐马尔科夫模型、角色 定义、语料库训练等方法进行人名和地名的识别,一般利用对语料库的学习,寻找专用字的 规律和统计数据进行新词发现。然而真实的语料中,绝大部分的新词并非是专有名词,如在 特定领域的新词,针对该问题现有的做法是通过对特定领域的文本进行切分字符串,并做 一些统计,基于这些统计量设定阈值,进行一轮过滤从而得到领域新词。这类方法大多基于 web的,虽然使用该方法可以获得大于阈值的新词,但是存在诸多不足。如web上重复的网页 较多、网页内容随意性较大,另外过滤得到的词库中仍含有大量噪音,比如动宾结构的词语 以及一些叠词。如何解决这些不足,也是传统方法的瓶颈所在。
[0005] 为了克服上述现有技术中的不足,提出了 一种利用word2vec和Bootstrapping迭 代相结合的领域新词抽取方法。

【发明内容】

[0006] 本发明提出了一种利用word2vec和Bootstrapping迭代相结合的领域新词抽取方 法,其特征在于,该方法包括以下步骤:
[0007] 步骤一:获取若干领域内的语料,去除语料中的控制字符,获得格式整齐的领域文 本;
[0008] 步骤二:根据标点符号对所述领域文本进行分句处理,得到领域单句集合S;
[0009] 步骤三:初始化设置n-gram模型,并对所述领域单句集合S切分字符串,获得字符 串集合Wo;
[0010] 步骤四:统计所述字符串集合Wo的词频、左邻个数、右邻个数、左字熵、右字熵以及 互信息六维统计量,并设置相应的参数进行筛选过滤,得到候选词集Wi;
[0011] 步骤五:将所述候选词集1添加到分词的用户字典中,并使用结巴分词对所述领 域单句集合S进行分词,获得单句分词集合Sseg;
[0012] 步骤六:使用w〇rd2vec训练所述单句分词集合Sseg,得至lj词向量空间We;
[0013]步骤七:构建领域种子集合Seeds,指定每个领域内的代表性词语并初始化所述领 域种子集合Seeds;
[0014] 步骤八:对每个领域的所述候选词集I中的字符串,分别计算其与该领域的所述 领域种子集合中的所有词语的余弦相似度的总和Ecos;设定总和阈值,若总和Ecos大于总 和阈值则将所述候选词集中的字符串作为领域新词添加至领域新词集合NWs中,判断所述 领域新词集合NWs是否发生变化,如有则进行步骤九,如未发生变化则进行步骤十;若总和 Ecos小于等于总和阈值,则直接过滤掉;
[0015] 步骤九:从所述领域新词集合NWs中选取热点词语替换该领域的所述领域种子集 合Seeds中的词语,跳转步骤八进行迭代;
[0016] 步骤十:迭代结束,所述领域新词集合NWs为领域新词抽取结果。
[0017] 本发明提出的所述领域新词抽取方法中,所述热点词语是指所述领域新词集合 NWs中按Ecos排序的前10位词语。
[0018]本发明提出的所述领域新词抽取方法中,初始化设置n-gram模型时,n = 5。
[0019] 本发明提出的所述领域新词抽取方法中,步骤六使用word2vec训练单句分词集合 Ss eg包括如下具体步骤:
[0020] 步骤a:将所述单句分词集合Sseg中的繁体字转化为简体字;
[0021]步骤b:将所述单句分词集合Sseg中不是utf-8编码的部分转化为utf-8编码;
[0022] 步骤c:使用Python版的word2vec工具包gens im,通过设置单词向量的维度大小、 训练窗口大小、最低频率参数;使用gensim对所述单句分词集合(Sseg)进行词向量的训练, 删除所述单句分词集合(Sseg)中词频小于所述最低频率参数的单词。
[0023]本发明的有益效果在于:能通过统计量过滤,进行初评价,保证成词率,再经过 word2vec与Bootstrapping迭代循环,进行再评价,抽取领域词汇。该方法能有效过滤掉传 统方法无法过滤掉的动宾结构和叠词等噪音。
【附图说明】
[0024]图1为本发明的流程示意图。
【具体实施方式】
[0025]结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、 条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发 明没有特别限制内容。
[0026] 本发明利用word2vec和Bootstrapping迭代相结合的领域新词抽取方法括以下步 骤:
[0027] 步骤一:获取若干领域内的语料,去除语料中的控制字符,获得格式整齐的领域文 本;
[0028] 步骤二:根据标点符号对领域文本进行分句处理,得到领域单句集合S;
[0029]步骤三:初始化设置n-gram模型,并对领域单句集合S切分字符串,获得字符串集 合Wo;
[0030]步骤四:统计字符串集合Wo的词频、左邻个数、右邻个数、左字熵、右字熵以及互信 息六维统计量,并设置相应的参数进行筛选过滤,本实施例中先根据k-means算法,使用六 维统计量作为聚类的特征,簇值选取为2,最终的参数根据簇中心进行调整得到候选词集 ffl;
[0031]步骤五:将所述候选词集1添加到分词的用户字典中,并使用结巴分词对领域单 句集合S进行分词,获得单句分词集合Sseg;
[0032] 步骤六:使用word2vec训练单句分词集合Sseg,得到词向量空间We;
[0033] 步骤七:构建领域种子集合Seeds,指定每个领域内的代表性词语并初始化领域种 子集合Seeds;
[0034] 步骤八:对每个领域的候选词集1中的字符串,分别计算其与该领域的领域种子 集合中的所有词语的余弦相似度的总和Ecos;设定总和阈值,若总和Ecos大于总和阈值则 将候选词集中的字符串作为领域新词添加至领域新词集合NWs中,判断领域新词集合NWs是 否发生变化,如有则进行步骤九,如未发生变化则进行步骤十;若总和Ecos小于等于总和阈 值,则直接过滤掉;
[0035] 步骤九:从领域新词集合NWs中选取热点词语替换该领域的领域种子集合Seeds中 的词语,跳转步骤八进行迭代;
[0036] 步骤十:迭代结束,领域新词集合NWs为领域新词抽取结果。
[0037] 以下结合表1,对本发明的数据清洗过程作进一步解释说明。
[0038] 第一步:向小i机器人有限公司申请其自动问答系统中各个领域的问句语料Do,转 到第二步;将Do去除文本中的控制字符,得到格式干净整齐的领域文本D,转到第三步;
[0039]第二步:对领域文本D,按照句号、问句和感叹号对领域文本进行分句处理,得到领 域单句集合S;
[0040] 第三步:利用n-gram模型,对单句集合S进行字符串切分,其中η取值为5,即认为最 长的候选词的长度为5,大于5不满足成词条件。最终切分得到字符串集合Wo,转到第四步;
[0041] 第四步:对字符串集合Wo,统计词频、左邻个数、右邻个数、左字熵、右字熵以及互 信息六维统计信息,参阅表1,并设定一组参数对Wo进行过滤,得到候选词集1,转到第五步;
[0042] 第五步:将候选词集1全部添加到分词工具对应的用户字典,并使用结巴分词对 领域单句集合S进行分词,以保证候选词能被完整被切分出来,最终得到Sseg集,转到第六 步;
[0043] 第六步:使用word2vec工具对Sseg进行训练,其中word2vec(word to vector),是 将单词转换成向量形式的工具。通过转换,可以把对文本内容的处理简化为向量空间运算, 具体转换过程如下:
[0044] 步骤a:将所述单句分词集合Sseg中的繁体字转化为简体字;
[0045] 步骤b:将所述单句分词集合Sseg中不是utf-8编码格式的单词转化为utf-8编码 格式;
[0046] 步骤c:使用Python版的word2vec工具包gens im,通过设置单词向量的维度大小、 训练窗口大小、最低频率参数,其中单词向量的维度大小设置为400,训练窗口大小为5就是 考虑一个词的前五个词和后五个词,最低频率参数min-count设置为3,即一个词在所述单 句分词集合Sseg中出现的次数小于3则被丢弃;使用gens im对所述单句分词集合Sseg进行 词向量的训练,删除所述单句分词集合Sseg中词频小于所述最低频率参数的单词。
[0047] word2vec遵循Apache License 2.0开源协议,是Google在2013年开源的一款将词 表征为实数值向量的高效工具,其利用深度学习的思想,可通过训练,把对文本内容的处理 简化为K维向量空间中的向量运算,而向量空间上的相似度可以表示文本语义上的相似度, 本发明就是利用这层原理,从语义上去除和种子词集相似度较低的那些噪音词汇,从而抽 取领域新词。本发明利用该工具最终得到词向量空间W E,跳转到第七步;
[0048] 第七步:构建领域种子集合Seeds,该领域种子集合在初始化时,由人工指定各个 领域最具代表性的10个词语作为种子,转到第八步;本实施例中选取的各领域的种子如表2 所示。表2中词汇的选定有以下三个原则:其一,应该由了解该领域文本数据的专门人员选 定;其二,一般选定的词在当前分词工具中无法准确分出;其三,绝对不能添加噪音数据,如 "去医院"这类动宾结构的数据绝对不能添加进来。原则一保证基于种子词筛选的词具有该 领域的领域特性,原则二保证了基于种子词筛选出的词包含大量当前分词工具无法正确切 分得到的词汇,原则三则从相似度角度过滤掉包括动宾结构、叠词在内的各种噪音。表2中 给出的领域种子词最初由人工指定,由于这些词代表的是该领域的新词,这些新词满足成 词的基本条件,并能体现该领域的语义,而且大多情况下,当前分词工具在没有将其添加至 用户字典之前无法正确分出该词,这也间接反映发现这些领域新词对提高分词准确率以及 基于分词的其他自然语言处理环节都具有重要意义。
[0049] 第八步:对各个领域的候选词集1,分别计算I中每个候选词与该领域的种子集合 中的所有词的余弦相似度并求和得到Ecos,其中,假设词语a和b分别对应η维向量A和B,A = [Αι,Α2,···,An],B=[Bi,B2,…,Bn],则计算词a和b的余弦相似度Sim(a,b)如公式⑴计算所 得,利用公式(1)计算Ecos如公式(2)所述,每个词的向量表征,可以从第六步训练得到的We 中查询得到。针对总和Ecos设定总和阈值,本发明中经过实验和不断调优,总和阈值设置为 0.01,大于总和阈值则将候选词添加至领域新词集合NWs,并判断此时NWs有无新词添加,若 有转到第九步,若没有,转到第十步,如表3所示为使用初始种子数据进行第一次迭代抽取 领域新词按照Ecos排序top 10的领域新词;
[0052]表3中的数据显示的是基于表2中的种子数据,经过第一轮迭代按照Ecos排序取 toplO的领域新词,使用这一批新词作为种子数据进行下一轮迭代,可以发现,与上一轮的 种子集相比,新一轮迭代的每一类别种子集有变动,从而保证新一轮迭代新词抽取的召回 率。使用此方法,抽取的领域新词准确率在96%左右,与传统方法相比具有可以有效过滤动 宾结构、叠词等噪音数据的优点。
[0053]第九步:从NWs根据Ecos选出前10位候选种子词替换其对应领域的Seeds中的种子 词,转到第八步进行新一轮的迭代;
[0054]第十步:迭代结束,NWs即为最终抽取的领域新词的集合。
[0055]表1初步评价六个统计量实例示意表
[0057]表2领域种子集实例示意表
[0060]表3第一次迭代余弦相似度求和排序各个领域toplO新词


[0064] 本发明结合Word2vec与Bootstrapping,整个过程实际上是两次评价的过程。在初 评价阶段,首先统计六维可以表征一个字符串能否成词的统计量,进行第一遍过滤,将不满 足成词条件的字符串过滤掉。在再评价阶段,充分利用word2vec和bootstrapping,从语义 层次将动宾结构、叠词等噪音词汇过滤掉,并且通过更新种子集,进行迭代抽取,直到没有 新词抽取出来结束迭代。最终抽取了该领域的新词。相比较现有的算法,本发明既能在初评 价阶段保证成词准确率,更能在再评价阶段有效去除动宾结构、叠词等噪音。
[0065] 本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本 领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保 护范围。
【主权项】
1. 一种利用word2vec和Bootstrapping迭代相结合的领域新词抽取方法,其特征在于, 该方法包括以下步骤: 步骤一:获取若干领域内的语料,去除语料中的控制字符,获得格式整齐的领域文本; 步骤二:根据标点符号对所述领域文本进行分句处理,得到领域单句集合(S); 步骤三:初始化设置n-gram模型,并对所述领域单句集合(S)切分字符串,获得字符串 集合(Wo); 步骤四:统计所述字符串集合(Wo)的词频、左邻个数、右邻个数、左字熵、右字熵以及互 信息六维统计量,并设置相应的参数进行筛选过滤,经过过滤得到候选词集(W〇; 步骤五:将所述候选词集(W〇添加到分词的用户字典中,并使用结巴分词对所述领域单 句集合(S)进行分词,获得单句分词集合(Sseg); 步骤六:使用word2vec训练单句分词集合(Sseg),得到词向量空间(We); 步骤七:构建领域种子集合(Seeds ),指定每个领域内的代表性词语并初始化所述领域 种子集合(Seeds); 步骤八:对每个领域的所述候选词集(WD中的字符串,分别计算其与该领域的所述领域 种子集合(Seeds)中的所有词语的余弦相似度的总和(Ecos);设定总和阈值,若总和(Ecos) 大于总和阈值则将所述候选词集(Wd中的字符串作为领域新词添加至领域新词集合(NWs) 中,判断所述领域新词集合(NWs)是否发生变化,如有则进行步骤九,如未发生变化则进行 步骤十;若总和(Ecos)小于等于总和阈值,则直接过滤掉; 步骤九:从所述领域新词集合(NWs)中选取热点词语替换该领域的所述领域种子集合 (Seeds)中的词语,跳转步骤八进行迭代; 步骤十:迭代结束,所述领域新词集合(NWs)为领域新词抽取结果。2. 如权利要求1所述的领域新词抽取方法,其特征在于,所述热点词语是指所述领域新 词集合(NWs)中按总和(Ecos)排序的前10位词语。3. 如权利要求1所述的领域新词抽取方法,其特征在于,初始化设置n-gram模型时,η = 5〇4. 如权利要求1所述的领域新词抽取方法,其特征在于,步骤六使用word2vec训练单句 分词集合(Sseg),包括如下具体步骤: 步骤a:将所述单句分词集合(Sseg)中的繁体字转化为简体字; 步骤b:将所述单句分词集合(Sseg)中不是utf-8编码格式的单词转化为utf-8编码格 式; 步骤c:使用Python版的word2vec工具包gens im,通过设置单词向量的维度大小、训练 窗口大小、最低频率参数;使用gensim对所述单句分词集合(Sseg)进行词向量的训练,删除 所述单句分词集合(Sseg)中词频小于所述最低频率参数的单词。5. 如权利要求1所述的领域新词抽取方法,其特征在于,步骤八、九将Bootstrapping方 法和word2vec相结合,通过迭代循环进行新词抽取,将迭代过程中计算得到总和(Ecos)大 于总和阈值当作新词,过滤小于或等于总和阈值的新词。
【文档编号】G06F17/22GK106095736SQ201610398614
【公开日】2016年11月9日
【申请日】2016年6月7日
【发明人】杨燕, 马敬超, 贺樑
【申请人】华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1