CN107894975A - 一种基于Bi‑LSTM的分词方法 - Google Patents
一种基于Bi‑LSTM的分词方法 Download PDFInfo
- Publication number
- CN107894975A CN107894975A CN201710946461.1A CN201710946461A CN107894975A CN 107894975 A CN107894975 A CN 107894975A CN 201710946461 A CN201710946461 A CN 201710946461A CN 107894975 A CN107894975 A CN 107894975A
- Authority
- CN
- China
- Prior art keywords
- lstm
- data
- character
- learning model
- deep learning
- 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/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
- 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
本发明公开了一种基于Bi‑LSTM的分词方法。本方法为:将训练语料数据转化为字符级的语料数据;将该语料数据按照句子长度划分,得到若干句子;然后根据句子长度对得到的句子进行分组,得到包括n组句子的数据集合;从数据集合中抽取若干数据作为迭代数据;将每次的迭代数据转换为固定长度的向量送入深度学习模型Bi‑LSTM,训练深度学习模型Bi‑LSTM的参数,当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度学习模型的训练,得到训练后的深度学习模型Bi‑LSTM;将待预测的语料数据转换成转化为字符级的语料数据,并将其送入训练好的深度学习模型Bi‑LSTM,得到分词结果。
Description
技术领域
本发明属于计算机软件技术领域,涉及一种基于Bi-LSTM的分词方法。
背景技术
自然语言处理问题中亚洲类型的文字并非像西文具有天然的空格分隔符,很多西文处理方法并不能直接用于亚洲类型(中文、韩文和日文)文字的处理,这是因为亚洲类型(中文、韩文和日文)必须经过分词的这道工序才能保持和西文一致。因此,分词在亚洲类型文字的处理中是信息处理的基础,其应用场景包括:
1.搜索引擎:搜索引擎中一个重要的功能就是做文档的全文索引,其内容是将文字进行分词,然后将文档的分词结果和文档形成一个倒排索引,用户在查询的时候也是先将查询的输入语句进行分词,而后将分词的结果和索引数据库进行对比,从而找出与当前输入最为相似的文档。
2.自动摘要生成:自动摘要是指将一篇较长的文档用一段较短的语言文字去总结。而在总结的过程中,就需要计算一篇文档中关键词,因此在计算关键词之前必须先对文档做分词处理。
3.自动校对:自动校对是指对一段文字作语法错误的检查,其检查的粒度还是基于词的方式做的检查,因此需要将用户输入的连续文字做分词处理。
传统的分词方法可以分为基于词典的分词,基于词频统计的方法以及基于知识的方法;基于词典的分词严重依赖于词典库,词频统计的HMM(隐马尔可夫)和CRF(条件随机场)其只能关联当前词的前一个词的语义。基于知识的人工神经网络模型因模型训练时的梯度消失问题,在实际的应用中网络层数少,最终分词结果优势不明显。
基于词典的分词方法严重依赖于词典库,效率比较低,且不能够识别未登录词;本发明中登录词指的是已经出现在语料词表中的词,未登录词指的是没有出现在语料词表中的词。
基于词频统计分词方法(例如N-Gram),其只能关联当前词的前N-1个词的语义,识别精度不够高,当N增加的时,效率非常低。而且对未登录的识别率偏低。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种基于Bi-LSTM(Bi-directional Long Short-Term Memory,双向长短期记忆神经网络)的分词方法。本发明通过自然语言处理中的序列标注(sequential labeling)将一个序列作为输入,并训练一个模型使其为每一序列片段数据产生正确的输出。
针对与中文类似(英文天然带有空格作为词之间的分割符)的语言进行分词的方法。本发明的核心问题包含三个:1分词的效率,2分词的精度,3未登录词的识别精度。
本发明的技术方案为:
一种基于Bi-LSTM的分词方法,其步骤包括:
1)将训练语料数据Original转化为字符级的语料数据New_Data;
2)将该语料数据New_Data按照句子长度划分,得到若干句子;然后根据句子长度对得到的句子进行分组,得到包括n组句子的数据集合GroupData;
3)从该数据集合GroupData中选取一句子分组,从该数据集合GroupData中抽取若干数据作为迭代数据;
4)将每次的迭代数据转换为固定长度的向量送入深度学习模型Bi-LSTM,训练该深度学习模型Bi-LSTM的参数,当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度学习模型的训练,得到训练后的深度学习模型Bi-LSTM;
5)将待预测的语料数据转换成转化为字符级的语料数据,并将其送入训练好的深度学习模型Bi-LSTM,得到分词结果。
进一步的,该固定长度等于该深度学习模型Bi-LSTM中的LSTM层正向的LSTM单元个数。
进一步的,产生该损失值的方法为:
31)将迭代数据在深度学习模型Bi-LSTM的字符向量量化层进行向量化,将迭代数据中的每个字符转换成一向量;
32)将该迭代数据中的每一字符对应的向量分别传入Bi-LSTM层正向和反向的一LSTM单元;且正向的第i-1个LSTM单元的输出结果输入正向的第i个LSTM单元、反向的第i-1个LSTM单元的输出结果输入反向的第i个LSTM单元;
33)将正向和反向的每个LSTM单元的输出和传入Concatenate层,即将正向和反向的LSTM单元的输出结果拼接在一起组合成hi,并传入DropOut层;
35)将每一DropOut层的输出经一分类模型处理后,根据得到的输出利用基于熵的损失函数计算损失值。
进一步的,所述损失值其中,yi为字符xi通过深度学习模型Bi-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梯度下降算法训练该深度学习模型Bi-LSTM的参数。
本发明方法的流程如图1,分两个阶段:训练阶段,预测阶段。
(一)训练阶段:
步骤1:将带有标签的训练语料数据转换为字符级的语料数据。
步骤2:使用Adam梯度下降算法训练深度学习模型。
(二)预测阶段:
步骤1:将没有标签的测试语料数据转换为字符级的语料数据。
步骤2:使用训练阶段训练好的深度学习模型进行预测。
本发明主要具有以下优点:
优点1:统计模型提高了未登录词识别识别率。这是因为传统的基于词(词典)的方式而采用的最长和最短等字符匹配的方式,倘若待分词并不存在于字典中,也就不能在字典中匹配到相应的结果,其一定不能正确的切分。而统计模型是预测所有词组合的最大可能性的一组分词方法,其带有预测的功能,因而能提高对未登录词的识别。另外在本模型中,在输入分词序列标注的分类模型前面加入两层LSTM单元,第一层主要是提取字符之间的特征,这是因为由字符到词,比如中国的姓氏(赵钱孙李…)来表示一个人的姓名的时候,这些词一般都与后面的词有紧密的关系的特征,应该分为一个词。第二层LSTM主要是来提取词与词之间的特征,这又是因为分词的结果不仅仅与字符特征有关系,并且与语句所处的上下文语境是非常相关的。相比较与纯粹的TF-IDF特征输入到统计分类模型,该模型吸收了字符与词之间的特征。因此能进一步的提升未登录词的识别。
优点2:两层的LSTM模型,同时吸收了字符之间和词之间的特征,因此其对比传统的统计分词方法其分词的准确度有进一步的提升。
附图说明
图1为本发明方法流程图。
图2为深度学习模型架构图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明的方法流程如图1所示,其包括:
(一)训练阶段:
步骤1:如果存在多个分词的语料数据,将多个整合为一个训练语料数据OrgData,其格式为每一个分词结果占用一行;然后将训练语料数据Original转化为字符级的语料数据。具体为:按照BMES(Begin,Middle,End,Single)的标记方式将原始训练语料数据字符切分标记New_Data。设某个词对应的标签为Label,则位于该词语最开始的字符标记为LabelB,位于该词语中间的字符标记为Label M,位于该词语末尾的字符标记为Label E,如果该字符独立构成一个词则标记为Label S。
步骤2:字符向量化。因计算机仅能对数值型的类型进行计算,而输入的字符w是字符型,计算机不能直接计算,因此需要将字符转化为数值向量。此处采用公知技术word2vec,仅仅把输入的word换成char,用skip-gram模型将字符转换为一个固定长度维度的向量(固定长度等于该深度学习模型Bi-LSTM中的第一层LSTM层的神经元单元个数),在本发明中字符向量的维度设置为64。
步骤3:建立模型。按照图2Bi-LSTM分词模型的架构搭建分词模型,将步骤2转化的字符向量输入到第一层LSTM单元,获得分词中字符前向(前向是指前一个字符对后一个字符分词的影响)特征,并将步骤2转化的字符向量输入到第二层LSTM单元,获得字符的后向特征(后向是指后一个字符对前一个字符分词的影响)。再将第一层LSTM的输出和第二层LSTM的输出进行拼接组合(Concatenate)。并将组合拼接的向量输入到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.一种基于Bi-LSTM的分词方法,其步骤包括:
1)将训练语料数据Original转化为字符级的语料数据New_Data;
2)将该语料数据New_Data按照句子长度划分,得到若干句子;然后根据句子长度对得到的句子进行分组,得到包括n组句子的数据集合GroupData;
3)从该数据集合GroupData中选取一句子分组,从该数据集合GroupData中抽取若干数据作为迭代数据;
4)将每次的迭代数据转换为固定长度的向量送入深度学习模型Bi-LSTM,训练该深度学习模型Bi-LSTM的参数,当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,则终止深度学习模型的训练,得到训练后的深度学习模型Bi-LSTM;
5)将待预测的语料数据转换成转化为字符级的语料数据,并将其送入训练好的深度学习模型Bi-LSTM,得到分词结果。
2.如权利要求1所述的方法,其特征在于,该固定长度等于该深度学习模型Bi-LSTM中的LSTM层正向的LSTM单元个数。
3.如权利要求2所述的方法,其特征在于,产生该损失值的方法为:
31)将迭代数据在深度学习模型Bi-LSTM的字符向量量化层进行向量化,将迭代数据中的每个字符转换成一向量;
32)将该迭代数据中的每一字符对应的向量分别传入Bi-LSTM层正向和反向的一LSTM单元;且正向的第i-1个LSTM单元的输出结果输入正向的第i个LSTM单元、反向的第i-1个LSTM单元的输出结果输入反向的第i个LSTM单元;
33)将正向和反向的每个LSTM单元的输出和传入Concatenate层,即将正向和反向的LSTM单元的输出结果拼接在一起组合成hi,并传入DropOut层;
35)将每一DropOut层的输出经一分类模型处理后,根据得到的输出利用基于熵的损失函数计算损失值。
4.如权利要求3所述的方法,其特征在于,所述损失值
其中,yi为字符xi通过深度学习模型Bi-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梯度下降算法训练该深度学习模型Bi-LSTM的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946461.1A CN107894975A (zh) | 2017-10-12 | 2017-10-12 | 一种基于Bi‑LSTM的分词方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946461.1A CN107894975A (zh) | 2017-10-12 | 2017-10-12 | 一种基于Bi‑LSTM的分词方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107894975A true CN107894975A (zh) | 2018-04-10 |
Family
ID=61803297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710946461.1A Withdrawn CN107894975A (zh) | 2017-10-12 | 2017-10-12 | 一种基于Bi‑LSTM的分词方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107894975A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826337A (zh) * | 2019-10-08 | 2020-02-21 | 西安建筑科技大学 | 一种短文本语义训练模型获取方法及相似度匹配算法 |
CN111126037A (zh) * | 2019-12-18 | 2020-05-08 | 昆明理工大学 | 一种基于孪生循环神经网络的泰文句子切分方法 |
CN112364631A (zh) * | 2020-09-21 | 2021-02-12 | 山东财经大学 | 基于层级多任务学习的中文语法错误检测方法及系统 |
CN112582074A (zh) * | 2020-11-02 | 2021-03-30 | 吉林大学 | 基于Bi-LSTM与TF-IDF的新冠疫情预测与分析方法 |
CN113112007A (zh) * | 2021-06-11 | 2021-07-13 | 平安科技(深圳)有限公司 | 神经网络中序列长度选择方法、装置、设备及存储介质 |
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 CN201710946461.1A patent/CN107894975A/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 (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826337A (zh) * | 2019-10-08 | 2020-02-21 | 西安建筑科技大学 | 一种短文本语义训练模型获取方法及相似度匹配算法 |
CN111126037A (zh) * | 2019-12-18 | 2020-05-08 | 昆明理工大学 | 一种基于孪生循环神经网络的泰文句子切分方法 |
CN112364631A (zh) * | 2020-09-21 | 2021-02-12 | 山东财经大学 | 基于层级多任务学习的中文语法错误检测方法及系统 |
CN112582074A (zh) * | 2020-11-02 | 2021-03-30 | 吉林大学 | 基于Bi-LSTM与TF-IDF的新冠疫情预测与分析方法 |
CN112582074B (zh) * | 2020-11-02 | 2022-10-18 | 吉林大学 | 基于Bi-LSTM与TF-IDF的新冠疫情预测与分析方法 |
CN113112007A (zh) * | 2021-06-11 | 2021-07-13 | 平安科技(深圳)有限公司 | 神经网络中序列长度选择方法、装置、设备及存储介质 |
CN113112007B (zh) * | 2021-06-11 | 2021-10-15 | 平安科技(深圳)有限公司 | 神经网络中序列长度选择方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104699763B (zh) | 多特征融合的文本相似性度量系统 | |
CN107885721A (zh) | 一种基于lstm的命名实体识别方法 | |
CN107894975A (zh) | 一种基于Bi‑LSTM的分词方法 | |
CN106599032B (zh) | 一种结合稀疏编码和结构感知机的文本事件抽取方法 | |
CN111931506B (zh) | 一种基于图信息增强的实体关系抽取方法 | |
CN108959242B (zh) | 一种基于中文字符词性特征的目标实体识别方法及装置 | |
CN107315738B (zh) | 一种文本信息的创新度评估方法 | |
CN109284400A (zh) | 一种基于Lattice LSTM和语言模型的命名实体识别方法 | |
CN107797987B (zh) | 一种基于Bi-LSTM-CNN的混合语料命名实体识别方法 | |
CN109635105A (zh) | 一种中文文本多意图识别方法及系统 | |
CN107844475A (zh) | 一种基于lstm的分词方法 | |
CN108255813A (zh) | 一种基于词频-逆文档与crf的文本匹配方法 | |
CN110851593B (zh) | 一种基于位置与语义的复值词向量构建方法 | |
CN112364623A (zh) | 基于Bi-LSTM-CRF的三位一体字标注汉语词法分析方法 | |
CN107943783A (zh) | 一种基于lstm‑cnn的分词方法 | |
CN107992467A (zh) | 一种基于lstm的混合语料分词方法 | |
Bedrick et al. | Robust kaomoji detection in Twitter | |
CN107894976A (zh) | 一种基于Bi‑LSTM的混合语料分词方法 | |
CN107797986A (zh) | 一种基于lstm‑cnn的混合语料分词方法 | |
CN104317882A (zh) | 一种决策级中文分词融合方法 | |
CN114491062B (zh) | 一种融合知识图谱和主题模型的短文本分类方法 | |
Ayifu et al. | Multilingual named entity recognition based on the BiGRU-CNN-CRF hybrid model | |
CN111178080A (zh) | 一种基于结构化信息的命名实体识别方法及系统 | |
CN111178009B (zh) | 一种基于特征词加权的文本多语种识别方法 | |
Sarikaya et al. | Shrinkage based features for slot tagging with conditional random fields. |
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 |
Application publication date: 20180410 |
|
WW01 | Invention patent application withdrawn after publication |