CN107844475A - 一种基于lstm的分词方法 - Google Patents
一种基于lstm的分词方法 Download PDFInfo
- Publication number
- CN107844475A CN107844475A CN201710946908.5A CN201710946908A CN107844475A CN 107844475 A CN107844475 A CN 107844475A CN 201710946908 A CN201710946908 A CN 201710946908A CN 107844475 A CN107844475 A CN 107844475A
- Authority
- CN
- China
- Prior art keywords
- lstm
- data
- deep learning
- learning model
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明公开了一种基于LSTM的分词方法。本方法为:1)将训练语料数据转化为字符级的语料数据;2)将该语料数据按照句子长度划分,得到若干句子;然后根据句子长度对得到的句子进行分组,得到包括n组句子的数据集合;3)从该数据集合中抽取若干数据作为迭代数据;4)将每次的迭代数据转换为固定长度的向量送入深度学习模型LSTM,训练该深度学习模型LSTM的参数,当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度学习模型的训练,得到训练后的深度学习模型LSTM;5)将待预测的语料数据转换成转化为字符级的语料数据,并将其送入训练好的深度学习模型LSTM,得到分词结果。
Description
技术领域
本发明属于计算机软件技术领域,涉及一种基于LSTM的分词方法。
背景技术
自然语言处理问题中亚洲类型的文字并非像西文具有天然的空格分隔符,很多西文处理方法并不能直接用于亚洲类型(中文、韩文和日文)文字的处理,这是因为亚洲类型(中文、韩文和日文)必须经过分词的这道工序才能保持和西文一致。因此,分词在亚洲类型文字的处理中是信息处理的基础,其应用场景包括:
1.搜索引擎:搜索引擎中一个重要的功能就是做文档的全文索引,其内容是将文字进行分词,然后将文档的分词结果和文档形成一个倒排索引,用户在查询的时候也是先将查询的输入语句进行分词,而后将分词的结果和索引数据库进行对比,从而找出与当前输入最为相似的文档。
2.自动摘要生成:自动摘要是指将一篇较长的文档用一段较短的语言文字去总结。而在总结的过程中,就需要计算一篇文档中关键词,因此在计算关键词之前必须先对文档做分词处理。
3.自动校对:自动校对是指对一段文字作语法错误的检查,其检查的粒度还是基于词的方式做的检查,因此需要将用户输入的连续文字做分词处理。
传统的分词方法可以分为基于词典的分词,基于词频统计的方法以及基于知识的方法;基于词典的分词严重依赖于词典库,词频统计的HMM(隐马尔可夫)和CRF(条件随机场)其只能关联当前词的前一个词的语义。基于知识的人工神经网络模型因模型训练时的梯度消失问题,在实际的应用中网络层数少,最终分词结果优势不明显。
基于词典的分词方法严重依赖于词典库,效率比较低,且不能够识别未登录词;本发明中登录词指的是已经出现在语料词表中的词,未登录词指的是没有出现在语料词表中的词。
基于词频统计分词方法(例如N-Gram),其只能关联当前词的前N-1个词的语义,识别精度不够高,当N增加的时,效率非常低。而且对未登录的识别率偏低。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种基于LSTM(LongShort-Term Memory,长短期记忆神经网络)的分词方法。本发明通过自然语言处理中的序列标注(sequential labeling)将一个序列作为输入,并训练一个模型使其为每一序列片段数据产生正确的输出。
针对与中文类似(英文天然带有空格作为词之间的分割符)的语言进行分词的方法。本发明的核心问题包含三个:1分词的效率,2分词的精度,3未登录词的识别精度。
本发明的技术方案为:
一种基于LSTM的分词方法,其步骤包括:
1)将训练语料数据Original转化为字符级的语料数据New_Data;
2)将该语料数据New_Data按照句子长度划分,得到若干句子;然后根据句子长度对得到的句子进行分组,得到包括n组句子的数据集合GroupData;
3)从该数据集合GroupData中抽取若干数据作为迭代数据;
4)将每次的迭代数据转换为固定长度的向量送入深度学习模型LSTM,训练该深度学习模型LSTM的参数,当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度学习模型的训练,得到训练后的深度学习模型LSTM;
5)将待预测的语料数据转换成转化为字符级的语料数据,并将其送入训练好的深度学习模型LSTM,得到分词结果。
进一步的,该固定长度等于该深度学习模型LSTM中的第一层LSTM层的LSTM单元个数。
进一步的,产生该损失值的方法为:
31)将迭代数据在深度学习模型LSTM的字符向量量化层进行向量化,将迭代数据中的每个字符转换成一向量;
32)将该迭代数据中的每一字符对应的向量分别传入该深度学习模型LSTM中第一LSTM层的一LSTM单元,获得分词中字符的特征,且将第一层LSTM第i个LSTM单元的输出同时作为第一层LSTM第i+1个LSTM单元的输入;然后将该第一层LSTM的输出输入到该深度学习模型LSTM中第二LSTM层,获得分词中词的特征,且将第二层LSTM第i个LSTM单元的输出同时作为第二层LSTM第i+1个LSTM单元的输入;
33)将第二层LSTM每一LSTM单元的输出输入到该深度学习模型LSTM的DropOut层;
35)将每一DropOut层的输出经一分类模型处理后,根据得到的输出利用基于熵的损失函
数计算损失值。
进一步的,所述损失值其中,yi为字符xi通过深度学习模型LSTM的输出结果,为字符xi的实际标记结果。
进一步的,所述步骤4)中,当损失值迭代变化|Li-Li+1|<ε时终止深度学习模型的训练。
进一步的,所述步骤3)中,每次随机无放回的从该数据集合GroupData中选取一句子分组,从该句子分组中抽取若干句子作为模型单次的迭代数据。
进一步的,所述步骤2)中,将|li-lj|<δ的句子归入一组;其中,li表示第i句话的句子长度、lj表示第j句话的句子长度,δ表示句子长度间隔。
进一步的,所述步骤1)中,按照BMES的标记方式将原始训练语料数据字符切分标记New_Data;设一词语对应的标签为Label,则位于该词语最开始的字符标记为Label B,位于该词语中间的字符标记为Label M,位于该词语末尾的字符标记为Label E,如果该字符独立构成一个词则标记为Label S。
进一步的,使用Adam梯度下降算法训练该深度学习模型LSTM的参数。
本发明方法的流程如图1,分两个阶段:训练阶段,预测阶段。
(一)训练阶段:(参考图1的训练流程)
步骤1:将带有标签的训练语料数据转换为字符级的语料数据。
步骤2:使用Adam梯度下降算法训练LSTM分词深度学习模型。
(二)预测阶段:(参考图1的预测流程)
步骤1:将没有标签的测试语料数据转换为字符级的语料数据。
步骤2:使用训练阶段训练好的LSTM分词深度学习模型进行预测。
本发明主要具有以下优点:
优点1:统计模型提高了未登录词识别识别率。这是因为传统的基于词(词典)的方式而采用的最长和最短等字符匹配的方式,倘若待分词并不存在于字典中,也就不能在字典中匹配到相应的结果,其一定不能正确的切分。而统计模型是预测所有词组合的最大可能性的一组分词方法,其带有预测的功能,因而能提高对未登录词的识别。另外在本模型中,发明者在输入分词序列标注的分类模型前面加入两层LSTM单元,第一层主要是提取字符之间的特征,这是因为由字符到词,比如中国的姓氏(赵钱孙李…)来表示一个人的姓名的时候,这些词一般都与后面的词有紧密的关系的特征,应该分为一个词。第二层LSTM主要是来提取词与词之间的特征,这又是因为分词的结果不仅仅与字符特征有关系,并且与语句所处的上下文语境是非常相关的。相比较与纯粹的TF-IDF特征输入到统计分类模型,该模型吸收了字符与词之间的特征。因此能进一步的提升未登录词的识别。
优点2:两层的LSTM模型,同时吸收了字符之间和词之间的特征,因此其对比传统的统计分词方法其分词的准确度有进一步的提升。
附图说明
图1为本发明方法流程图。
图2为本发明LSTM分词的模型架构图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明的流程图如图1所示,其实施方式可以分为2个阶段:1)训练阶段和2)预测阶段。
(一)训练阶段:
步骤1:如果存在多个分词的语料数据,将多个整合为一个训练语料数据OrgData,其格式为每一个分词结果占用一行;然后将训练语料数据Original转化为字符级的语料数据。具体为:按照BMES(Begin,Middle,End,Single)的标记方式将原始训练语料数据字符切分标记New_Data。设某个词对应的标签为Label,则位于该词语最开始的字符标记为LabelB,位于该词语中间的字符标记为Label M,位于该词语末尾的字符标记为Label E,如果该字符独立构成一个词则标记为Label S。
比如“我是中国人,我爱中国”的格式如下:
我
是
中国人
,
我
爱
中国
。
标记后的结果为:
我S
是S
中B
国M
人E
,S
我S
爱S
中B
国E
。S
步骤2:字符向量化。因计算机仅能对数值型的类型进行计算,而输入的字符w是字符型,计算机不能直接计算,因此需要将字符转化为数值向量。此处采用公知技术word2vec,仅仅把输入的word换成char,用skip-gram模型将字符转换为一个固定长度维度的向量(固定长度等于该深度学习模型LSTM中的第一层LSTM层的LSTM单元个数),在本发明中字符向量的维度设置为64。
步骤3:建立模型。按照图2的LSTM分词模型的架构搭建分词模型,将步骤2转化的字符向量输入到第一层LSTM单元,获得分词中字符特征;同时,为了获得前一个字符对后一个字符影响的特征,同时第一层LSTM第i个LSTM单元的输出同时作为第一层LSTM第i+1个LSTM单元的输入。而后将第一层LSTM的输出输入到第二层LSTM单元,获得分词中词的特征,同时为了获得前一个词对后一个词的实体结果的影响,也同时第二层LSTM第i个LSTM单元的输出同时作为第二层LSTM第i+1个LSTM单元的输入。而后将第二层LSTM的输出输入到DropOut层,DropOut层的作用是为了防止模型过拟合,本发明专利中DropOut的值设置为η=0.5。最后将DropOut的输出输入到序列分类模型CRF中,从而计算出每输入字符xi通过上述模型计算出的yi。并设定语料中实际标记的结果为从而构造一个基于熵的损失函数L:
而后,本发明将这个损失函数L转化为一个优化问题,求解:
步骤4:模型参数求解。为了求解优化函数L中的参数w,本发明中采用公知的Adam梯度下降算法训练L中的参数。在训练参数的过程中,包含有以下的几个关键问题:
■分句:将NewData按照句子长度划分。设li表示第i句话的句子长度,则将的句子归入一组,其中|li-lj|<δ表示句子长度间隔。设分组之后的数据为GroupData,一共设为n组。
■输入数据的填充:因为图2的LSTM分词结构模型其输入数据的神经元单元是固定长度的,对分句后字符长度小于分词结构神经元个数的语句需要用数据0填充。
■迭代批量数据的选取BatchSize:在Adam梯度下降算法的迭代中本发明每次随机无放回的从该数据集合GroupData中选取一句子分组,从该句子分组中抽取BatchSize个句子作为模型单次的迭代数据。
■迭代终止条件:在Adam梯度下降算法训练L中的参数的模型终止条件的选择上,本发明设置了两个终止条件:1)最大的迭代次数Max_Iteration和2)损失值迭代变化|Li-Li+1|<ε。
步骤5:保存模型。最后将步骤1-4步中训练好的模型参数保存,以供预测阶段使用这些参数。
(二)预测阶段:
步骤1:将待预测数据按照(一)训练阶段步骤1数据预处理过程将其转化为字符级别的格式,和训练阶段的区别是其没有标记数据。比如“我是美国人,我也爱中国。”,且其格式为每一个分词结果占用一行。
步骤2:同样按照(一)训练阶段步骤2将预测阶段的步骤1的字符用公知的word2vec将其转化为字符向量。
步骤3:将步骤2得到的字符向量数据输入到(一)训练阶段步骤5保存的模型中。得到每一个输入数据的预测结果。在预测的过程中同样需要对输入的句子分句和输入数据填充的操作,到此就完成了实体的预测过程。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (9)
1.一种基于LSTM的分词方法,其步骤包括:
1)将训练语料数据Original转化为字符级的语料数据New_Data;
2)将该语料数据New_Data按照句子长度划分,得到若干句子;然后根据句子长度对得到的句子进行分组,得到包括n组句子的数据集合GroupData;
3)从该数据集合GroupData中抽取若干数据作为迭代数据;
4)将每次的迭代数据转换为固定长度的向量送入深度学习模型LSTM,训练该深度学习模型LSTM的参数,当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度学习模型的训练,得到训练后的深度学习模型LSTM;
5)将待预测的语料数据转换成转化为字符级的语料数据,并将其送入训练好的深度学习模型LSTM,得到分词结果。
2.如权利要求1所述的方法,其特征在于,该固定长度等于该深度学习模型LSTM中的第一层LSTM层的LSTM单元个数。
3.如权利要求2所述的方法,其特征在于,产生该损失值的方法为:
31)将迭代数据在深度学习模型LSTM的字符向量量化层进行向量化,将迭代数据中的每个字符转换成一向量;
32)将该迭代数据中的每一字符对应的向量分别传入该深度学习模型LSTM中第一LSTM层的一LSTM单元,获得分词中字符的特征,且将第一层LSTM第i个LSTM单元的输出同时作为第一层LSTM第i+1个LSTM单元的输入;然后将该第一层LSTM的输出输入到该深度学习模型LSTM中第二LSTM层,获得分词中词的特征,且将第二层LSTM第i个LSTM单元的输出同时作为第二层LSTM第i+1个LSTM单元的输入;
33)将第二层LSTM每一LSTM单元的输出输入到该深度学习模型LSTM的DropOut层;
35)将每一DropOut层的输出经一分类模型处理后,根据得到的输出利用基于熵的损失函数计算损失值。
4.如权利要求3所述的方法,其特征在于,所述损失值 其中,yi为字符xi通过深度学习模型LSTM的输出结果,为字符xi的实际标记结果。
5.如权利要求4所述的方法,其特征在于,所述步骤4)中,当损失值迭代变化|Li-Li+1|<ε时终止深度学习模型的训练。
6.如权利要求1所述的方法,其特征在于,所述步骤3)中,每次随机无放回的从该数据集合GroupData中选取一句子分组,从该句子分组中抽取若干句子作为模型单次的迭代数据。
7.如权利要求1所述的方法,其特征在于,所述步骤2)中,将|li-lj|<δ的句子归入一组;其中,li表示第i句话的句子长度、lj表示第j句话的句子长度,δ表示句子长度间隔。
8.如权利要求1所述的方法,其特征在于,所述步骤1)中,按照BMES的标记方式将原始训练语料数据字符切分标记New_Data;设一词语对应的标签为Label,则位于该词语最开始的字符标记为Label B,位于该词语中间的字符标记为Label M,位于该词语末尾的字符标记为Label E,如果该字符独立构成一个词则标记为Label S。
9.如权利要求1所述的方法,其特征在于,使用Adam梯度下降算法训练该深度学习模型LSTM的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946908.5A CN107844475A (zh) | 2017-10-12 | 2017-10-12 | 一种基于lstm的分词方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946908.5A CN107844475A (zh) | 2017-10-12 | 2017-10-12 | 一种基于lstm的分词方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107844475A true CN107844475A (zh) | 2018-03-27 |
Family
ID=61661302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710946908.5A Withdrawn CN107844475A (zh) | 2017-10-12 | 2017-10-12 | 一种基于lstm的分词方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844475A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN109388806A (zh) * | 2018-10-26 | 2019-02-26 | 北京布本智能科技有限公司 | 一种基于深度学习及遗忘算法的中文分词方法 |
CN110726505A (zh) * | 2019-10-23 | 2020-01-24 | 上海电力高压实业有限公司 | 基于长短时记忆网络的输电杆塔螺栓紧固检测方法及系统 |
CN112214994A (zh) * | 2020-10-10 | 2021-01-12 | 苏州大学 | 基于多级词典的分词方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250501A1 (en) * | 2005-09-27 | 2007-10-25 | Grubb Michael L | Search result delivery engine |
CN105740226A (zh) * | 2016-01-15 | 2016-07-06 | 南京大学 | 使用树形神经网络和双向神经网络实现中文分词 |
CN106844345A (zh) * | 2017-02-06 | 2017-06-13 | 厦门大学 | 一种基于参数线性约束的多任务分词方法 |
CN107145484A (zh) * | 2017-04-24 | 2017-09-08 | 北京邮电大学 | 一种基于隐多粒度局部特征的中文分词方法 |
-
2017
- 2017-10-12 CN CN201710946908.5A patent/CN107844475A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250501A1 (en) * | 2005-09-27 | 2007-10-25 | Grubb Michael L | Search result delivery engine |
CN105740226A (zh) * | 2016-01-15 | 2016-07-06 | 南京大学 | 使用树形神经网络和双向神经网络实现中文分词 |
CN106844345A (zh) * | 2017-02-06 | 2017-06-13 | 厦门大学 | 一种基于参数线性约束的多任务分词方法 |
CN107145484A (zh) * | 2017-04-24 | 2017-09-08 | 北京邮电大学 | 一种基于隐多粒度局部特征的中文分词方法 |
Non-Patent Citations (2)
Title |
---|
GRZEGORZ CHRUPALA: "Text segmentation with character-level text embeddings", 《WORKSHOP ON DEEP LEARNING FOR AUDIO, SPEECH AND LANGUAGE PROCESSING, ICML 2013》 * |
ONUR KURU等: "CharNER:Character-Level Named Entity Recognition", 《THE 26TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL LINGUISTICS: TECHNICAL PAPERS》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN109388806A (zh) * | 2018-10-26 | 2019-02-26 | 北京布本智能科技有限公司 | 一种基于深度学习及遗忘算法的中文分词方法 |
CN110726505A (zh) * | 2019-10-23 | 2020-01-24 | 上海电力高压实业有限公司 | 基于长短时记忆网络的输电杆塔螺栓紧固检测方法及系统 |
CN110726505B (zh) * | 2019-10-23 | 2021-10-15 | 上海电力高压实业有限公司 | 基于长短时记忆网络的输电杆塔螺栓紧固检测方法及系统 |
CN112214994A (zh) * | 2020-10-10 | 2021-01-12 | 苏州大学 | 基于多级词典的分词方法、装置、设备及可读存储介质 |
CN112214994B (zh) * | 2020-10-10 | 2021-06-01 | 苏州大学 | 基于多级词典的分词方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599032B (zh) | 一种结合稀疏编码和结构感知机的文本事件抽取方法 | |
CN108959242B (zh) | 一种基于中文字符词性特征的目标实体识别方法及装置 | |
CN111931506B (zh) | 一种基于图信息增强的实体关系抽取方法 | |
CN107894975A (zh) | 一种基于Bi‑LSTM的分词方法 | |
CN111209401A (zh) | 网络舆情文本信息情感极性分类处理系统及方法 | |
CN106096664B (zh) | 一种基于社交网络数据的情感分析方法 | |
CN107315738B (zh) | 一种文本信息的创新度评估方法 | |
CN108255813B (zh) | 一种基于词频-逆文档与crf的文本匹配方法 | |
CN106557462A (zh) | 命名实体识别方法和系统 | |
CN107844475A (zh) | 一种基于lstm的分词方法 | |
CN109635105A (zh) | 一种中文文本多意图识别方法及系统 | |
CN107688630B (zh) | 一种基于语义的弱监督微博多情感词典扩充方法 | |
CN110851593B (zh) | 一种基于位置与语义的复值词向量构建方法 | |
CN104317882B (zh) | 一种决策级中文分词融合方法 | |
CN107992467A (zh) | 一种基于lstm的混合语料分词方法 | |
CN107943783A (zh) | 一种基于lstm‑cnn的分词方法 | |
CN109740164A (zh) | 基于深度语义匹配的电力缺陷等级识别方法 | |
Bedrick et al. | Robust kaomoji detection in Twitter | |
CN107797986A (zh) | 一种基于lstm‑cnn的混合语料分词方法 | |
CN107894976A (zh) | 一种基于Bi‑LSTM的混合语料分词方法 | |
CN114491062B (zh) | 一种融合知识图谱和主题模型的短文本分类方法 | |
CN109325243A (zh) | 字符级基于序列模型的蒙古文切词方法及其切词系统 | |
CN116720520B (zh) | 一种面向文本数据的别名实体快速识别方法及系统 | |
CN111178009B (zh) | 一种基于特征词加权的文本多语种识别方法 | |
CN112307756A (zh) | 基于Bi-LSTM和字词融合的汉语分词方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180327 |