CN108595430A - 航变信息提取方法及*** - Google Patents
航变信息提取方法及*** Download PDFInfo
- Publication number
- CN108595430A CN108595430A CN201810385920.8A CN201810385920A CN108595430A CN 108595430 A CN108595430 A CN 108595430A CN 201810385920 A CN201810385920 A CN 201810385920A CN 108595430 A CN108595430 A CN 108595430A
- Authority
- CN
- China
- Prior art keywords
- information
- participle
- entity
- boat
- training corpus
- 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.)
- Granted
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
- G06F40/295—Named entity recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种航变信息提取方法及***,其中提取方法包括:S1、根据若干航变样本信息构建字典;S2、根据字典将航变样本信息进行预分词得到分词训练语料;S3、利用分词训练语料训练第一CRF模型得到中文分词模型;S4、输入航变样本信息至中文分词模型得到实体训练语料;S5、利用实体训练语料训练第二CRF模型得到实体解析模型;S6、将航变信息依次输入至中文分词模型和实体解析模型得到预设航班实体信息的内容。本发明的方法提高了航班实体信息识别效率,经过若干航变测试样本信息的测试证明,利用航变样本信息训练出的中文分词模型和实体解析模型相对基于正则表达式的模板匹配方法,航班实体信息提取的准确率也大大提高。
Description
技术领域
本发明涉及文字信息处理领域,尤其涉及一种航变信息提取方法及***。
背景技术
旅客在OTA(在线旅行社)服务端定好出行机票后,但由于天气、空中交通管制、机务维修、航班调配等原因,需要调整原来的航班,包括更改机型或航线、取消、提前、中断、推迟或延期航班飞行等,OTA服务端通常会发相关的航变信息给旅客的设备终端以提醒旅客。
航变信息中通常要体现实体和实体关系,实体和实体关系包括旅客姓名(常规中文名,音译外国人名,少数民族名等)、航班号、机场、日期、时间等信息以及航班变化前后的相关信息之间的关系。
航变信息的解析目前现有的技术方案采用的是,合并相似的信息作为一类,为每一类信息人工配置一个正则表达式匹配模板,但模板匹配法会存在以下问题:
航变信息解析不准确,导致部分有效信息被删除;
航变信息模板变动频繁,维护难度大;
不符合解析条件的模板,人工维护和解析模板,工作量大。
目前解决这些问题的常规技术方案是采用自然语言处理技术中的中文分词和命名实体识别方案。目前许多开源的自然语言处理框架都是基于开源语料学习的,不能很好的应用于OTA领域的航变信息解析。现有开源方案主要存在以下难点:
分词粒度不能根据应用场景自适应。命名实体识别不能不能区分实体关系,比如航班变化前后的相关信息内容以及信息内容的相互关系。
发明内容
本发明要解决的技术问题是为了克服现有技术中航变信息中的相关航班实体信息识别效率不高以及识别准确率低的缺陷,提供一种航变信息提取方法。
本发明是通过下述技术方案来解决上述技术问题:
一种航变信息提取方法,所述航变信息提取方法包括:
S1、根据若干航变样本信息构建字典;
S2、根据所述字典将所述航变样本信息进行分词得到预分词训练语料;将所述分词训练语料设置标签序列,并对所述分词训练语料构建特征向量;
S3、利用所述分词训练语料的特征向量和标签序列训练第一CRF(条件随机场)模型得到中文分词模型,所述中文分词模型用于根据所述字典将航变信息进行分词得到分词信息;
S4、输入航变样本信息至所述中文分词模型得到实体训练语料,将实体训练语料根据预设航班实体信息进行标注得到标注序列,对所述实体训练语料构建特征向量,其中所述预设航班实体信息用于表征航班的变化信息;
S5、利用所述实体训练语料的特征向量和标注序列训练第二CRF模型得到实体解析模型,所述实体解析模型用于将所述分词信息根据所述预设航班实体信息进行解析得到所述预设航班实体信息的内容;
S6、将航变信息依次输入至所述中文分词模型和实体解析模型得到所述预设航班实体信息的内容。
较佳地,所述步骤S2包括:
S21、将所述航变样本信息进行预分词得到预分词语料;
S22、根据所述字典将所述预分词语料合并得到所述分词训练语料,所述分词训练语料包括若干第一分词;
S23、分别将若干所述第一分词设置标签得到标签序列;
S24、每个所述第一分词包括若干字符,对每个字符构建特征,利用若干所述字符的特征和所述字典构建所述第一分词的特征向量,利用所述第一分词的特征向量构建所述分词训练语料的特征向量。
较佳地,实体训练语料包括若干第二分词,所述步骤S4中的所述对所述实体训练语料构建特征向量步骤包括:
分别对若干所述第二分词构建特征,利用所述第二分词的特征和所述字典构建所述实体训练语料的特征向量。
较佳地,所述步骤S1中,构建所述字典前,先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。
较佳地,所述步骤S4还包括:
将所述实体训练语料根据人名构成角色表进行标注得到角色标注序列,利用所述角色标注序列训练HMM(隐马尔可夫)模型得到人名识别模型;
所述步骤S6包括:
将航变信息输入至所述HMM模型,所述航变信息包括姓名信息,利用Viterbi(一种动态规则算法)算法求解得到所述航变信息中的所述姓名信息。
一种航变信息提取***,所述航变信息提取***包括:
字典构建模块,用于根据若干航变样本信息构建字典;
分词特征构建模块,用于根据所述字典将所述航变样本信息进行预分词得到分词训练语料;还用于将所述分词训练语料设置标签序列,并对所述分词训练语料构建特征向量;
中文分词模型训练模块,用于利用所述分词训练语料的特征向量和标签序列训练第一CRF模型得到中文分词模型,所述中文分词模型用于根据所述字典将航变信息进行分词得到分词信息;
实体特征构建模块,用于输入航变样本信息至所述中文分词模型得到实体训练语料,并将实体训练语料根据预设航班实体信息进行标注得到标注序列,还用于对所述实体训练语料构建特征向量,其中所述预设航班实体信息用于表征航班的变化信息;
实体解析模型训练模块,用于利用所述实体训练语料的特征向量和标注序列训练第二CRF模型得到实体解析模型,所述实体解析模型用于将所述分词信息根据所述预设航班实体信息进行解析得到所述预设航班实体信息的内容;
实体解析模块,用于将航变信息依次输入至所述中文分词模型和实体解析模型得到所述预设航班实体信息的内容。
较佳地,所述分词特征构建模块还用于将所述航变样本信息进行预分词得到预分词语料;还用于根据所述字典将所述预分词语料合并得到所述分词训练语料,所述分词训练语料包括若干第一分词;以及分别将若干所述第一分词设置标签得到标签序列,其中每个所述第一分词包括若干字符;
所述分词特征构建模块还用于对每个字符构建特征,还用于利用若干所述字符的特征和所述字典构建所述第一分词的特征向量,以及利用所述第一分词的特征向量构建所述分词训练语料的特征向量。
较佳地,实体训练语料包括若干第二分词,所述实体特征构建模块还用于分别对若干所述第二分词构建特征,以及利用所述第二分词的特征和所述字典构建所述实体训练语料的特征向量。
较佳地,所述字典构建模块还用于构建所述字典前,先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。
较佳地,所述实体特征构建模块还用于将所述实体训练语料根据人名构成角色表进行标注得到角色标注序列,并利用所述角色标注序列训练HMM模型得到人名识别模型;
所述实体解析模块还用于将航变信息输入至所述HMM模型,所述航变信息包括姓名信息,利用Viterbi算法求解得到所述航变信息中的所述姓名信息。本发明的积极进步效果在于:
本发明的航变信息提取方法通过根据若干航变样本信息构建字典;根据字典利用航变样本信息训练第一CRF模型得到中文分词模型;利用中文分词模型将航变样本信息进行分词得到实体训练语料,利用实体训练语料训练第二CRF模型得到实体解析模型;将航变信息依次输入至中文分词模型和实体解析模型得到航班实体信息的内容。本发明的航变信息提取方法可通过中文分词模型和实体解析模型自动进行航班实体信息的识别提取,提高了航班实体信息识别效率,经过若干航变测试样本信息的测试证明,利用航变样本信息训练出的中文分词模型和实体解析模型相对基于正则表达式的模板匹配方法,航班实体信息提取的准确率也大大提高。
附图说明
图1为本发明的实施例1的航变信息提取方法的流程图。
图2为本发明的实施例1的航变信息提取方法的步骤102的流程图。
图3为本发明的实施例1的航变信息提取方法中的SEG-CRF特征的构成示意图。
图4为本发明的实施例1的航变信息提取方法中的NER-CRF特征的构成示意图。
图5为本发明的实施例2的航变信息提取***的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
航变即由于天气、空中交通管制、机务维修、航班调配等原因,调整原来的航班,包括更改机型或航线、取消、提前、中断、推迟或延期航班飞行等。在航变的情况下,通知旅客的信息称为航变信息。
实施例1
本实施例提供一种航变信息提取方法,如图1所示,航变信息提取方法包括:
步骤101、根据若干航变样本信息构建字典。
本实施例的航变样本信息中的文字优选为中文,中文包括繁体中文和简体中文。构建字典前,可先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。先对原始航变样本信息中的中文航变信息进行是否简繁体判断,如果是繁体中文则转成简体中文,反之无需转换,然后再进行全角转半角处理。
现有技术中的分词粒度不能根据应用场景自适应。航变信息的解析需要对机场,日期等实体切分的长度尽量长,如“上海浦东机场”不能切分成“上海”,“浦东”,“机场”三个单独的词,在构建字典时,将“上海浦东机场”作为一个词构建于字典中。
步骤102、根据字典将航变样本信息进行预分词得到分词训练语料;将分词训练语料设置标签序列,并对分词训练语料构建特征向量。
优选地,如图2所示,步骤102具体包括:
步骤1021、将航变样本信息进行预分词得到预分词语料。
本实施例中,利用开源HanLP(自然语言处理包)分词工具对航变信息进行预分词得到预分词语料。比如如果航变样本信息中包含“上海虹桥机场”,经过预分词后会得到“上海”“虹桥”“机场”三个分词。
步骤1022、根据字典将预分词语料合并得到分词训练语料,分词训练语料包括若干第一分词。
根据前面步骤构建的字典记录的内容,对机场、航班号、时间、日期等词进行合并清洗,如将“上海”、“虹桥”、“机场”合并为一个词“上海虹桥机场”;将“2017”、“年”、“3”、“月”、“25”、“日”六个词合并为1个词代表具体日期。
如前面的例子,航变样本信息中包含一分词“上海虹桥机场”,经过预分词后会得到“上海”“虹桥”“机场”三个分词,而实际想要的结果是结合在一起的“上海虹桥机场”。
在此步骤中对上步骤的预分词语料进行了合并即清洗,如在预分词语料中“上海”、“虹桥”、“机场”三个词是连续在一起出现,根据字典将这三个词进行合并,确保在预分词语料中只会出现“上海虹桥机场”,不会出现三个独立的词,合并处理后得到分词训练语料。
步骤1023、分别将若干第一分词设置标签得到标签序列。
步骤1024、每个第一分词包括若干字符,对每个字符构建特征,利用若干字符的特征和字典构建第一分词的特征向量,利用第一分词的特征向量构建分词训练语料的特征向量。
对于每个字符,利用BMES标签体系,即B(开头),M(中间),E(结尾),S(独立成词),例如“上海浦东机场”的标签为“BMMMME”的,“是”的标签为“S”,所有标签构成标签序列。
综合考虑当前分词前后2个字以及及字本身的SEG-CRF特征,如图3所示,SEG-CRF特征包括字本身和字类型的相关信息。
对于“航班F3已飞。”这句话,考虑字前后2个字及字本身(共5个字的特征),每个字考虑图3所示的字本身和字类型中的共6个属性,那么每个字的特征大小就是5×6的矩阵。根据SEG-CRF特征对“航班F3已飞。”中的每个字构建特征:
Feature_vec={
“航”:{-2:[None,None,None,None,None,None],
-1:[None,None,None,None,None,None],
0:[“航”,False,False,False,False,True],
1:[“班”,False,False,False,False,True],
2:[“F”,False,False,True,False,False]
}
“班”:{-2:[None,None,None,None,None,None],
-1:[“航”,False,False,False,False,True],
0:[“班”,False,False,False,False,True],
1:[“F”,False,False,True,False,False],
2:[“3”,False,True,False,False,False]
}
……
如上,以第2个字“班”为例。以“-2”作为“班”前面第2个字的索引,由于“班”前面第1个字是“航”,前面第2个字没有,没有就设置为None,以构建“班”前面第2个字的特征。
“班”前面第1个字是“航”,以“-1”作为“航”字的索引,那么以图3中所列的特征维度,来构建“航”的特征,“航”字本身是“航”,“航”不是空格,标记为False,“航”不是数字,标记为False,“航”不是字母,标记为False,“航”不是标点符号,标记为False,“航”是中文字符(就是除空格,数字,字母,标点符号以为的字符),标记为True,就构建了作为“班”前面第1个字的特征。
同理,以0作为“班”本身索引,以1作为“班”后面第1个字的索引,以2作为“班”后面第2个字的索引。
还是以“航班F3已飞。”为例,这句话共有7个字,每个字考虑5个字的特征(前后2个字及本身字的特征),每个字考虑6个维度的属性,那么特征向量(矩阵)的大小就是7维度的属性。
将构建的特征转化为特征向量,其中每个字、数字或者符号转化为其在字典中的索引(word_index),False为0,True为1,None为-1;以“航班F3已飞。”为例,考虑字前后2个字及字本身(共5个字的特征),每个字考虑图3所示的6个属性,那么每个字的特征大小就是5维度的矩阵。
步骤103、利用分词训练语料的特征向量和标签序列训练第一CRF模型得到中文分词模型,中文分词模型用于根据字典将航变信息进行分词得到分词信息。中文分词模型学习完成后,对于航变信息进行预测的时候,就不会把“上海虹桥机场”切分成三个词,而是预测为一个词。
步骤104、输入航变样本信息至中文分词模型得到实体训练语料,将实体训练语料根据预设航班实体信息进行标注得到标注序列,对实体训练语料构建特征向量,其中预设航班实体信息用于表征航班的变化信息。如表1所示,本实施例的预设航班实体信息包括原始出发机场、原始出发日期、原始出发时间、原始到达机场、原始到达日期、原始到达时间、保护出发机场、保护出发日期、保护出发时间、保护到达机场、保护到达日期和保护到达时间。可根据实际需求,灵活更改实体信息的具体定义。
表1
比如航变样本信息中包括信息内容“13:40由上海飞往北京MH350由于天气原因已经调整为14:50”,分词后的信息,应用空格进行标记:“13:40由上海飞往北京的MH350由于天气原因已经调整为14:50”,按照表1对分词后的信息构建成“(ODT、DEF、ODP、DEF、OAP、DEF、OF、DEF、DEF、DEF、DEF、DEF、PDT)”的标注序列。
其中,实体训练语料包括若干第二分词,优选地,对实体训练语料构建特征向量的步骤具体包括:分别对若干第二分词构建特征,利用第二分词的特征和字典构建实体训练语料的特征向量。
步骤105、利用实体训练语料的特征向量和标注序列训练第二CRF模型得到实体解析模型,实体解析模型用于将分词信息根据预设航班实体信息进行解析得到预设航班实体信息的内容。
以实体训练语料为“13:00由上海浦东机场飞往北京”为例,包括以空格为标志分开的多个第二分词,根据图4所示的分词特征属性NER-CRF特征,对所有第二分词构建特征,NER-CRF特征包括词本身、词类型、默认词性、关键词的相对位置等多个属性。构建的特征如下:
Feature_vec={
“13:00”:{-2:[None,None,None,None,None,None,None,None,None,None,None],
-1:[None,None,None,None,None,None,None,None,None,None,None],
0:[“13:00”,False,True,False,False,False,False,False,False,False,-1],
1:[“由”,False,False,False,False,True,False,True,False,False,-1],
2:[“上海浦东机场”,False,False,True,False,False,False,False,True,True,-1]
}
“由”:{-2:[None,None,None,None,None,None,None,None,None,None,None],
-1:[“13:00”,False,True,False,False,False,False,False,False,False,-1],
0:[“由”,False,False,False,False,False,False,True,False,False,-1],
1:[“上海浦东机场”,False,False,True,False,False,False,True,True,True,-1],
2:[“飞往”,False,True,False,False,False,False,False,False,False,-1]
}
……
步骤106、将航变信息依次输入至中文分词模型和实体解析模型得到预设航班实体信息的内容。
步骤104还包括:
将实体训练语料根据人名构成角色表进行标注得到角色标注序列,利用角色标注序列训练HMM模型得到人名识别模型。
人名与上下文用词比较集中,也有很强的规律性,人名的上下文用词范围也很有限,上文一般是称呼、职衔和连词等,比如“尊敬的”,下文一般是“旅客”、“乘客”、“客户”等称谓词。
这里,本文将一个句子中所有的词划分为人名内部组成部分、上文、下文、无关词等,并称谓人名的构成角色,具体的角色分类如表2人名构成角色表中所示:
表2人名构成角色表
利用航变样本信息中的数据,先进行预分词得到预分词语料,之后再将预分词语料通过中文分词模型进行分词并进行角色标注。预分词语料如“亲爱的<name>张三</name>和<name>牛二花</name>等旅客”。
通过中文分词模型进行分词后是这样的(词和词之间用“/”标记),“亲爱/的/张三/和/牛二花/等/旅客”。进行角色标注时,因为预分词语料语料姓名有标注,可得知“张三”和“牛二花”是姓名,其他都不是,那么按照表2所示进行标注,得到带有角色标签的训练语料,如,字与角色标签用“|”分割标记,字与字之间用空格标记,将“亲爱/的/张三/和/牛二花/等/旅客”标注为“亲|A爱|A的|K张|B三|E和|M牛|B二|C花|D等|L旅|A客|A”。
利用HMM模型对上述得到的标注后的语料进行训练,分别计算得到HMM模型的初始状态概率向量π,状态转移概率矩阵A和观测概率矩阵Bt等3个参数。
设Q是所有可能状态的集合(即角色标签集合),V是所有可能的观测的集合(即航变信息中文字的集合)。
Q={q1,q2,…,qN},O={o1,o2,…,oM}
N为状态数(角色标签数量),N=10,即表2所示的,Q={A,B,C,D,E,F,G,K,L,M}
M为观测数(航变信息的字)。
A是状态概率矩阵:
A=[ai,j]N×N
其中状态转移概率ai,j=P(it+1=qj|it=qi),意思就是第t个字的标签到第t+1个字的标签的概率。
B是观测概率矩阵B=[bj(k)]N×M
其中观测概率bj(k)=P(ot=vk|it=qj)意思就是第t个字是某个标签的概率。
π是初始状态概率向量
π=(πi)
其中πi=P(i1=qi)意思就是某个标签出现在第1个位置的概率。
具体计算步骤为,遍历一遍所有预分词语料中的训练数据(数据集大小为S)即可得出。
如“亲|A爱|A的|K张|B三|E和|M牛|B二|C花|D等|L旅|A客|A”这句话中,亲是第1个字,且标签是A。计算标签A的初始状态概率,就是统计所有数据集中第一个字的状态是A的次数#A,然后用#A除以数据集大小S,就得到标签A的初始概率,以此类推,得到其他标签的概率。
状态转移概率也通过遍历一遍数据集可得出。比如“爱”的标签是A,“的”的标签是K,那么就算是一次标签A到标签K的概率,统计所有A到K的出现次数#AK,再统计所有标签A的次数#A,#AK除以#A就得到A到K的状态转移概率。以此类推,得到其他状态转移概率。
观测概率遍历一遍数据集可得出。
比如“亲|A爱|A的|K张|B爱|E和|M牛|B二|C花|D等|L旅|A客|A”。
统计每个字的观测概率,比如,统计“爱”字在数据集中出现的总次数#爱,所有“爱”是标签A的次数#爱A,则#爱A除以#爱就得到爱是标签A的观测概率。
“爱”是标签A的次数#爱E,则#爱E除以#爱就得到爱是标签E的观测概率。
….
以此类推。
综上所述,只需要遍历一遍训练数据集,就可得到HMM模型的参数,初始状态概率向量π,状态转移概率矩阵A和观测概率矩阵B。
对应的,步骤106还包括:
将航变信息输入至HMM模型,航变信息包括姓名信息,利用Viterbi算法求解得到航变信息中的姓名信息。
比如航变信息“亲爱的张五和牛三花等旅客”,利用Viterbi算法求解可得到最优的标签序列结果是“亲|A爱|A的|K张|B五|E和|M牛|B三|C花|D等|L旅|A客|A”。根据表2中B和E两个标签就可以判断出姓名,B是姓名,E是姓名的结尾,B和E中间的都属于姓名组成部分。
本发明的航变信息提取方法通过根据若干航变样本信息构建字典;根据字典利用航变样本信息训练第一CRF模型得到中文分词模型;利用中文分词模型将航变样本信息进行分词得到实体训练语料,利用实体训练语料训练第二CRF模型得到实体解析模型;将航变信息依次输入至中文分词模型和实体解析模型得到航班实体信息的内容。还利用实体训练语料训练HMM模型得到人名识别模型,利用人名识别模型和Viterbi算法识别航变信息中的人名。
本发明的航变信息提取方法可通过中文分词模型和实体解析模型自动进行航班实体信息的识别提取,以及利用人名识别模型和Viterbi算法识别航变信息中的人名,提高了航班实体信息识别效率。经过若干航变测试样本信息的测试证明,利用航变样本信息训练出的人名识别模型、中文分词模型和实体解析模型进行的信息提取,相对基于正则表达式的模板匹配方法,航班实体信息提取的准确率大大提高。
实施例2
本实施例提供一种航变信息提取***,如图5所示,航变信息提取***包括字典构建模块201、分词特征构建模块202、中文分词模型训练模块203、实体特征构建模块204、实体解析模型训练模块205和实体解析模块206。
字典构建模块201用于根据若干航变样本信息构建字典。构建字典前,可先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。
本实施例的航变样本信息中的文字优选为中文,中文包括繁体中文和简体中文。构建字典前,可先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。先对原始航变样本信息中的中文航变信息进行是否简繁体判断,如果是繁体中文则转成简体中文,反之无需转换,然后再进行全角转半角处理。
现有技术中的分词粒度不能根据应用场景自适应。航变信息的解析需要对机场,日期等实体切分的长度尽量长,如“上海浦东机场”不能切分成“上海”,“浦东”,“机场”三个单独的词,在构建字典时,将“上海浦东机场”作为一个词构建于字典中。
分词特征构建模块202用于根据字典将航变样本信息进行预分词得到分词训练语料;还用于将分词训练语料设置标签序列,并对分词训练语料构建特征向量。
优选地,分词特征构建模块202还用于将航变样本信息进行预分词得到预分词语料;还用于根据字典将预分词语料合并得到分词训练语料,分词训练语料包括若干第一分词;以及分别将若干第一分词设置标签得到标签序列,其中每个第一分词包括若干字符;分词特征构建模块202还用于对每个字符构建特征,还用于利用若干字符的特征和字典构建第一分词的特征向量,以及利用第一分词的特征向量构建分词训练语料的特征向量。
本实施例中,利用开源HanLP(自然语言处理包)分词工具对航变信息进行预分词得到预分词语料。比如如果航变样本信息中包含“上海虹桥机场”,经过预分词后会得到“上海”“虹桥”“机场”三个分词。
根据前面步骤构建的字典记录的内容,对机场、航班号、时间、日期等词进行合并清洗,如“上海”、“虹桥”、“机场”合并为一个词“上海虹桥机场”;将“2017”、“年”、“3”、“月”、“25”、“日”六个词合并为1个词代表具体日期。
如前面的例子,航变样本信息中包含一分词“上海虹桥机场”,经过预分词后会得到“上海”“虹桥”“机场”三个分词,而实际想要的结果是结合在一起的“上海虹桥机场”。
在此步骤中对上步骤的预分词语料进行了合并即清洗,如在预分词语料中“上海”、“虹桥”、“机场”三个词是连续在一起出现,就根据字典将这三个词进行合并,确保在预分词语料中只会出现“上海虹桥机场”,不会出现三个独立的词,这样处理后得到分词训练语料。
对于每个字符,利用BMES标签体系,即B(开头),M(中间),E(结尾),S(独立成词),例如“上海浦东机场”的标签为“BMMMME”的,“是”的标签为“S”,所有标签构成标签序列。
综合考虑当前分词前后2个字以及及字本身的SEG-CRF特征,如图3所示,SEG-CRF特征包括字本身和字类型的相关信息。
对于“航班F3已飞。”这句话,考虑字前后2个字及字本身(共5个字的特征),每个字考虑图3所示的字本身和字类型中的共6个属性,那么每个字的特征大小就是5×6的矩阵。根据SEG-CRF特征对“航班F3已飞。”中的每个字构建特征:
Feature_vec={
“航”:{-2:[None,None,None,None,None,None],
-1:[None,None,None,None,None,None],
0:[“航”,False,False,False,False,True],
1:[“班”,False,False,False,False,True],
2:[“F”,False,False,True,False,False]
}
“班”:{-2:[None,None,None,None,None,None],
-1:[“航”,False,False,False,False,True],
0:[“班”,False,False,False,False,True],
1:[“F”,False,False,True,False,False],
2:[“3”,False,True,False,False,False]
}
……
如上,以第2个字“班”为例。以“-2”作为“班”前面第2个字的索引,由于“班”前面第1个字是“航”,前面第2个字没有,没有就设置为None,以构建“班”前面第2个字的特征。
“班”前面第1个字是“航”,以“-1”作为“航”字的索引,那么以图3中所列的特征维度,来构建“航”的特征,“航”字本身是“航”,“航”不是空格,标记为False,“航”不是数字,标记为False,“航”不是字母,标记为False,“航”不是标点符号,标记为False,“航”是中文字符(就是除空格,数字,字母,标点符号以为的字符),标记为True,就构建了作为“班”前面第1个字的特征。
同理,以0作为“班”本身索引,以1作为“班”后面第1个字的索引,以2作为“班”后面第2个字的索引。
还是以“航班F3已飞。”为例,这句话共有7个字,每个字考虑5个字的特征(前后2个字及本身字的特征),每个字考虑6个维度的属性,那么特征向量(矩阵)的大小就是7维度的属性。
将构建的特征转化为特征向量,其中每个字、数字或者符号转化为其在字典中的索引(word_index),False为0,True为1,None为-1;以“航班F3已飞。”为例,考虑字前后2个字及字本身(共5个字的特征),每个字考虑图3所示的6个属性,那么每个字的特征大小就是5维度的矩阵。
中文分词模型训练模块203用于利用分词训练语料的特征向量和标签序列训练第一CRF模型得到中文分词模型,中文分词模型用于根据字典将航变信息进行分词得到分词信息。中文分词模型学习完成后,对于航变信息进行预测的时候,就不会把“上海虹桥机场”切分成三个词,而是预测为一个词。
实体特征构建模块204用于输入航变样本信息至中文分词模型得到实体训练语料,将实体训练语料根据预设航班实体信息进行标注得到标注序列,对实体训练语料构建特征向量,其中预设航班实体信息用于表征航班的变化信息。如表1所示,本实施例的预设航班实体信息包括原始出发机场、原始出发日期、原始出发时间、原始到达机场、原始到达日期、原始到达时间、保护出发机场、保护出发日期、保护出发时间、保护到达机场、保护到达日期和保护到达时间。可根据实际需求,灵活更改实体信息的具体定义。
表1
比如航变样本信息中包括信息内容“13:40由上海飞往北京MH350由于天气原因已经调整为14:50”,分词后的信息,应用空格进行标记:“13:40由上海飞往北京的MH350由于天气原因已经调整为14:50”,按照表1对分词后的信息构建成“(ODT、DEF、ODP、DEF、OAP、DEF、OF、DEF、DEF、DEF、DEF、DEF、PDT)”的标注序列。
其中,实体训练语料包括若干第二分词,优选地,对实体训练语料构建特征向量的步骤具体包括:分别对若干第二分词构建特征,利用第二分词的特征和字典构建实体训练语料的特征向量。
实体解析特征训练模块205用于利用实体训练语料的特征向量和标注序列训练第二CRF模型得到实体解析模型,实体解析模型用于将分词信息根据预设航班实体信息进行解析得到预设航班实体信息的内容。
实体解析模块206用于将航变信息依次输入至中文分词模型和实体解析模型得到预设航班实体信息的内容。
以实体训练语料为“13:00由上海浦东机场飞往北京”为例,包括以空格为标志分开的多个第二分词,根据图4所示的分词特征属性NER-CRF特征,对所有第二分词构建特征,NER-CRF特征包括词本身、词类型、默认词性、关键词的相对位置等多个属性。构建的特征如下:
Feature_vec={
“13:00”:{-2:[None,None,None,None,None,None,None,None,None,None,None],
-1:[None,None,None,None,None,None,None,None,None,None,None],
0:[“13:00”,False,True,False,False,False,False,False,False,False,-1],
1:[“由”,False,False,False,False,True,False,True,False,False,-1],
2:[“上海浦东机场”,False,False,True,False,False,False,False,True,True,-1]
}
“由”:{-2:[None,None,None,None,None,None,None,None,None,None,None],
-1:[“13:00”,False,True,False,False,False,False,False,False,False,-1],
0:[“由”,False,False,False,False,False,False,True,False,False,-1],
1:[“上海浦东机场”,False,False,True,False,False,False,True,True,True,-1],
2:[“飞往”,False,True,False,False,False,False,False,False,False,-1]
}
……
实体特征构建模块204还用于将实体训练语料根据人名构成角色表进行标注得到角色标注序列,利用角色标注序列训练HMM模型得到人名识别模型;
人名与上下文用词比较集中,也有很强的规律性,人名的上下文用词范围也很有限,上文一般是称呼、职衔和连词等,比如“尊敬的”,下文一般是“旅客”、“乘客”、“客户”等称谓词。
这里,本文将一个句子中所有的词划分为人名内部组成部分、上文、下文、无关词等,并称谓人名的构成角色,具体的角色分类如表2人名构成角色表中所示:
表2人名构成角色表
tags | 意义 | 例子 |
A | 其他无关词 | 亲爱的张三旅客 |
B | 姓氏 | 亲爱的张三旅客 |
C | 双名的首字 | 亲爱的牛二花旅客 |
D | 双名的末字 | 亲爱的牛二花旅客 |
E | 单名 | 亲爱的张三旅客 |
F | 前缀 | 老刘,小王 |
G | 后缀 | 王总,刘妈 |
K | 人名的上文 | 亲爱的牛二花旅客 |
L | 人名的下文 | 亲爱的牛二花旅客 |
M | 两个中文名之间的切分 | 张三和牛二花旅客 |
利用航变样本信息中的数据,先进行预分词得到预分词语料,之后再将预分词语料通过中文分词模型进行分词并进行角色标注。预分词语料如“亲爱的<name>张三</name>和<name>牛二花</name>等旅客”。
通过中文分词模型进行分词后是这样的(词和词之间用“/”标记),“亲爱/的/张三/和/牛二花/等/旅客”。进行角色标注时,因为预分词语料语料姓名有标注,可得知“张三”和“牛二花”是姓名,其他都不是,那么按照表2所示进行标注,得到带有角色标签的训练语料,如,字与角色标签用“|”分割标记,字与字之间用空格标记,将“亲爱/的/张三/和/牛二花/等/旅客”标注为“亲|A爱|A的|K张|B三|E和|M牛|B二|C花|D等|L旅|A客|A”。
利用HMM模型对上述得到的标注后的语料进行训练,分别计算得到HMM模型的初始状态概率向量π,状态转移概率矩阵A和观测概率矩阵B等3个参数。
设Q是所有可能状态的集合(即角色标签集合),V是所有可能的观测的集合(即航变信息中文字的集合)。
Q={q1,q2,…,qN},O={o1,o2,…,oM}
N为状态数(角色标签数量),N=10,即表2所示的,Q={A,B,C,D,E,F,G,K,L,M}
M为观测数(航变信息的字)。
A是状态概率矩阵:
A=[ai,j]N×N
其中状态转移概率ai,j=P(it+1=qj|it=qi),意思就是第t个字的标签到第t+1个字的标签的概率。
B是观测概率矩阵B=[bj(k)]N×M
其中观测概率bj(k)=P(ot=vk|it=qj)意思就是第t个字是某个标签的概率。
π是初始状态概率向量
π=(πi)
其中πi=P(i1=qi)意思就是某个标签出现在第1个位置的概率。
具体计算步骤为,遍历一遍所有预分词语料中的训练数据(数据集大小为S)可得出。
如“亲|A爱|A的|K张|B三|E和|M牛|B二|C花|D等|L旅|A客|A”这句话中,亲是第1个字,且标签是A。计算标签A的初始状态概率,就是统计所有数据集中第一个字的状态是A的次数#A,然后用#A除以数据集大小S,就得到标签A的初始概率,以此类推,得到其他标签的概率。
状态转移概率也通过遍历一遍数据集可得出。比如“爱”的标签是A,“的”的标签是K,那么就算是一次标签A到标签K的概率,统计所有A到K的出现次数#AK,再统计所有标签A的次数#A,#AK除以#A就得到A到K的状态转移概率。以此类推,得到其他状态转移概率。
观测概率遍历一遍数据集可得出。
比如“亲|A爱|A的|K张|B爱|E和|M牛|B二|C花|D等|L旅|A客|A”。
统计每个字的观测概率,比如,统计“爱”字在数据集中出现的总次数#爱,所有“爱”是标签A的次数#爱A,则#爱A除以#爱就得到爱是标签A的观测概率。
“爱”是标签A的次数#爱E,则#爱E除以#爱就得到爱是标签E的观测概率。
….
以此类推。
综上所述,只需要遍历一遍训练数据集,就可得到HMM模型的参数,初始状态概率向量π,状态转移概率矩阵A和观测概率矩阵B。
实体解析模块206还用于将航变信息输入至HMM模型,航变信息包括姓名信息,利用Viterbi算法求解得到航变信息中的姓名信息。
比如航变信息“亲爱的张五和牛三花等旅客”,利用Viterbi算法求解可得到最优的标签序列结果是“亲|A爱|A的|K张|B五|E和|M牛|B三|C花|D等|L旅|A客|A”。根据表2中B和E两个标签就可以判断出姓名,B是姓名,E是姓名的结尾,B和E中间的都属于姓名组成部分。
本发明的航变信息提取***通过根据若干航变样本信息构建字典;根据字典利用航变样本信息训练第一CRF模型得到中文分词模型;利用中文分词模型将航变样本信息进行分词得到实体训练语料,利用实体训练语料训练第二CRF模型得到实体解析模型;将航变信息依次输入至中文分词模型和实体解析模型得到航班实体信息的内容。还利用实体训练语料训练HMM模型得到人名识别模型,利用人名识别模型和Viterbi算法识别航变信息中的人名。
本发明的航变信息提取***可通过中文分词模型和实体解析模型自动进行航班实体信息的识别提取,以及利用人名识别模型和Viterbi算法识别航变信息中的人名,提高了航班实体信息识别效率,经过若干航变测试样本信息的测试证明,利用航变样本信息训练出的人名识别模型、中文分词模型和实体解析模型进行的信息提取,相对基于正则表达式的模板匹配方法,航班实体信息提取的准确率大大提高。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种航变信息提取方法,其特征在于,所述航变信息提取方法包括:
S1、根据若干航变样本信息构建字典;
S2、根据所述字典将所述航变样本信息进行预分词得到分词训练语料;将所述分词训练语料设置标签序列,并对所述分词训练语料构建特征向量;
S3、利用所述分词训练语料的特征向量和标签序列训练第一CRF模型得到中文分词模型,所述中文分词模型用于根据所述字典将航变信息进行分词得到分词信息;
S4、输入航变样本信息至所述中文分词模型得到实体训练语料,将实体训练语料根据预设航班实体信息进行标注得到标注序列,对所述实体训练语料构建特征向量,其中所述预设航班实体信息用于表征航班的变化信息;
S5、利用所述实体训练语料的特征向量和标注序列训练第二CRF模型得到实体解析模型,所述实体解析模型用于将所述分词信息根据所述预设航班实体信息进行解析得到所述预设航班实体信息的内容;
S6、将航变信息依次输入至所述中文分词模型和实体解析模型得到所述预设航班实体信息的内容。
2.如权利要求1所述的航变信息提取方法,其特征在于,所述步骤S2包括:
S21、将所述航变样本信息进行预分词得到预分词语料;
S22、根据所述字典将所述预分词语料合并得到所述分词训练语料,所述分词训练语料包括若干第一分词;
S23、分别将若干所述第一分词设置标签得到标签序列;
S24、每个所述第一分词包括若干字符,对每个字符构建特征,利用若干所述字符的特征和所述字典构建所述第一分词的特征向量,利用所述第一分词的特征向量构建所述分词训练语料的特征向量。
3.如权利要求1所述的航变信息提取方法,其特征在于,实体训练语料包括若干第二分词,所述步骤S4中的所述对所述实体训练语料构建特征向量步骤包括:
分别对若干所述第二分词构建特征,利用所述第二分词的特征和所述字典构建所述实体训练语料的特征向量。
4.如权利要求1所述的航变信息提取方法,其特征在于,所述步骤S1中,构建所述字典前,先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。
5.如权利要求1所述的航变信息提取方法,其特征在于,所述步骤S4还包括:
将所述实体训练语料根据人名构成角色表进行标注得到角色标注序列,利用所述角色标注序列训练HMM模型得到人名识别模型;
所述步骤S6包括:
将航变信息输入至所述HMM模型,所述航变信息包括姓名信息,利用Viterbi算法求解得到所述航变信息中的所述姓名信息。
6.一种航变信息提取***,其特征在于,所述航变信息提取***包括:
字典构建模块,用于根据若干航变样本信息构建字典;
分词特征构建模块,用于根据所述字典将所述航变样本信息进行预分词得到分词训练语料;还用于将所述分词训练语料设置标签序列,并对所述分词训练语料构建特征向量;
中文分词模型训练模块,用于利用所述分词训练语料的特征向量和标签序列训练第一CRF模型得到中文分词模型,所述中文分词模型用于根据所述字典将航变信息进行分词得到分词信息;
实体特征构建模块,用于输入航变样本信息至所述中文分词模型得到实体训练语料,并将实体训练语料根据预设航班实体信息进行标注得到标注序列,还用于对所述实体训练语料构建特征向量,其中所述预设航班实体信息用于表征航班的变化信息;
实体解析模型训练模块,用于利用所述实体训练语料的特征向量和标注序列训练第二CRF模型得到实体解析模型,所述实体解析模型用于将所述分词信息根据所述预设航班实体信息进行解析得到所述预设航班实体信息的内容;
实体解析模块,用于将航变信息依次输入至所述中文分词模型和实体解析模型得到所述预设航班实体信息的内容。
7.如权利要求6所述的航变信息提取***,其特征在于,所述分词特征构建模块还用于将所述航变样本信息进行预分词得到预分词语料;还用于根据所述字典将所述预分词语料合并得到所述分词训练语料,所述分词训练语料包括若干第一分词;以及分别将若干所述第一分词设置标签得到标签序列,其中每个所述第一分词包括若干字符;
所述分词特征构建模块还用于对每个字符构建特征,还用于利用若干所述字符的特征和所述字典构建所述第一分词的特征向量,以及利用所述第一分词的特征向量构建所述分词训练语料的特征向量。
8.如权利要求6所述的航变信息提取***,其特征在于,实体训练语料包括若干第二分词,所述实体特征构建模块还用于分别对若干所述第二分词构建特征,以及利用所述第二分词的特征和所述字典构建所述实体训练语料的特征向量。
9.如权利要求6所述的航变信息提取***,其特征在于,所述字典构建模块还用于构建所述字典前,先将若干航变样本信息的繁体中文编码格式转化为简体中文编码格式。
10.如权利要求6所述的航变信息提取***,其特征在于,所述实体特征构建模块还用于将所述实体训练语料根据人名构成角色表进行标注得到角色标注序列,并利用所述角色标注序列训练HMM模型得到人名识别模型;
所述实体解析模块还用于将航变信息输入至所述HMM模型,所述航变信息包括姓名信息,利用Viterbi算法求解得到所述航变信息中的所述姓名信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810385920.8A CN108595430B (zh) | 2018-04-26 | 2018-04-26 | 航变信息提取方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810385920.8A CN108595430B (zh) | 2018-04-26 | 2018-04-26 | 航变信息提取方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595430A true CN108595430A (zh) | 2018-09-28 |
CN108595430B CN108595430B (zh) | 2022-02-22 |
Family
ID=63610298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810385920.8A Active CN108595430B (zh) | 2018-04-26 | 2018-04-26 | 航变信息提取方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595430B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222340A (zh) * | 2019-06-06 | 2019-09-10 | 掌阅科技股份有限公司 | 书籍人物姓名识别模型的训练方法、电子设备及存储介质 |
CN110782380A (zh) * | 2019-10-30 | 2020-02-11 | 北京创鑫旅程网络技术有限公司 | 航变信息管理方法、装置和存储介质 |
CN111914538A (zh) * | 2020-07-31 | 2020-11-10 | 长江航道测量中心 | 一种航道通告信息智能空间匹配方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077164A (zh) * | 2012-12-27 | 2013-05-01 | 新浪网技术(中国)有限公司 | 文本分析方法及文本分析器 |
CN103995885A (zh) * | 2014-05-29 | 2014-08-20 | 百度在线网络技术(北京)有限公司 | 实体名的识别方法和装置 |
CN104615589A (zh) * | 2015-02-15 | 2015-05-13 | 百度在线网络技术(北京)有限公司 | 训练命名实体识别模型的方法、命名实体识别方法及装置 |
CN104933152A (zh) * | 2015-06-24 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 命名实体识别方法及装置 |
CN106980608A (zh) * | 2017-03-16 | 2017-07-25 | 四川大学 | 一种中文电子病历分词和命名实体识别方法及*** |
CN107291700A (zh) * | 2017-07-17 | 2017-10-24 | 广州特道信息科技有限公司 | 实体词识别方法及装置 |
-
2018
- 2018-04-26 CN CN201810385920.8A patent/CN108595430B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077164A (zh) * | 2012-12-27 | 2013-05-01 | 新浪网技术(中国)有限公司 | 文本分析方法及文本分析器 |
CN103995885A (zh) * | 2014-05-29 | 2014-08-20 | 百度在线网络技术(北京)有限公司 | 实体名的识别方法和装置 |
CN104615589A (zh) * | 2015-02-15 | 2015-05-13 | 百度在线网络技术(北京)有限公司 | 训练命名实体识别模型的方法、命名实体识别方法及装置 |
CN104933152A (zh) * | 2015-06-24 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 命名实体识别方法及装置 |
CN106980608A (zh) * | 2017-03-16 | 2017-07-25 | 四川大学 | 一种中文电子病历分词和命名实体识别方法及*** |
CN107291700A (zh) * | 2017-07-17 | 2017-10-24 | 广州特道信息科技有限公司 | 实体词识别方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222340A (zh) * | 2019-06-06 | 2019-09-10 | 掌阅科技股份有限公司 | 书籍人物姓名识别模型的训练方法、电子设备及存储介质 |
CN110782380A (zh) * | 2019-10-30 | 2020-02-11 | 北京创鑫旅程网络技术有限公司 | 航变信息管理方法、装置和存储介质 |
CN110782380B (zh) * | 2019-10-30 | 2022-07-08 | 北京创鑫旅程网络技术有限公司 | 航变信息管理方法、装置和存储介质 |
CN111914538A (zh) * | 2020-07-31 | 2020-11-10 | 长江航道测量中心 | 一种航道通告信息智能空间匹配方法及*** |
CN111914538B (zh) * | 2020-07-31 | 2024-05-31 | 长江航道测量中心 | 一种航道通告信息智能空间匹配方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108595430B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019839B (zh) | 基于神经网络和远程监督的医学知识图谱构建方法和*** | |
CN107133220B (zh) | 一种地理学科领域命名实体识别方法 | |
CN106570179B (zh) | 一种面向评价性文本的核心实体识别方法及装置 | |
CN110597997B (zh) | 一种军事想定文本事件抽取语料库迭代式构建方法及装置 | |
CN106033462B (zh) | 一种新词发现方法及*** | |
CN108763510A (zh) | 意图识别方法、装置、设备及存储介质 | |
CN111783394A (zh) | 事件抽取模型的训练方法、事件抽取方法和***及设备 | |
CN112084381A (zh) | 一种事件抽取方法、***、存储介质以及设备 | |
CN104778256B (zh) | 一种领域问答***咨询的快速可增量聚类方法 | |
CN106126619A (zh) | 一种基于视频内容的视频检索方法及*** | |
CN112257452B (zh) | 情感识别模型的训练方法、装置、设备和存储介质 | |
CN110222328B (zh) | 基于神经网络的分词和词类标注方法、装置、设备及存储介质 | |
CN106599054A (zh) | 一种题目分类及推送的方法及*** | |
CN110879831A (zh) | 基于实体识别技术的中医药语句分词方法 | |
CN107145584A (zh) | 一种基于n‑gram模型的简历解析方法 | |
CN108595430A (zh) | 航变信息提取方法及*** | |
CN111709242A (zh) | 一种基于命名实体识别的中文标点符号添加方法 | |
CN112364623A (zh) | 基于Bi-LSTM-CRF的三位一体字标注汉语词法分析方法 | |
CN108563725A (zh) | 一种中文症状体征构成识别方法 | |
CN104699797A (zh) | 一种网页数据结构化解析方法和装置 | |
CN106610937A (zh) | 一种基于信息论的中文自动分词算法 | |
CN108763192B (zh) | 用于文本处理的实体关系抽取方法及装置 | |
CN114416979A (zh) | 一种文本查询方法、设备和存储介质 | |
CN107832307B (zh) | 基于无向图与单层神经网络的中文分词方法 | |
CN113420548A (zh) | 一种基于知识蒸馏和pu学习的实体抽取采样方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |