一种在中文文本中识别汽车昵称的方法和装置的制作方法

文档序号:6618911阅读:196来源:国知局

专利名称::一种在中文文本中识别汽车昵称的方法和装置的制作方法
技术领域
:本发明涉及信息检索领域,尤其涉及一种在中文文本中识别汽车昵称的方法和装置。
背景技术
:伴随着互联网的高速发展,人们的生活越来越依赖于网络。而一种新的文化正在渐渐的形成。人们越来越多地使用昵称以及简短的称呼来代替一些物品的原有名称。昵称,也就是俗称的小名。昵称一般用于日常生活中,多见于口语。用以表达一种喜爱之情。昵称和简称是有重叠的,有时候简称也是一种昵称。人们为了简化某些复杂的称呼便用昵称来代替。随着经济的发展,拥有私人汽车的人越来越多,人们越来越多地在网上交流对车的使用心得。不仅仅是和汽车有关的新闻,人们在买车的时候会更多地注重已拥有同款车型的车主的感受,而不是很多记者写的介绍基本型号、性能的新闻评论类文章。并且人们的车如果遇见问题,也经常会上网求助大家,所以,论坛上车主的帖子往往会有极高的价值。可问题也随之而来,绝大部分车主都会给自己心爱的汽车起昵称或者用别名来称呼。车名、型号这些数据都可以直接抓取,建立对应的库便可以轻松的处理。可汽车昵称却多种多样。比如在某个论坛的马自达子论坛中有如下文本马六音响精彩升级马六车型用的是美国BOSE的音响。不过BOSE的音响现在基本都是贴牌生产的。而且BOSE的汽车音响远没有在家庭音响中影响力那么大,可以说是性价比很低的产品,在汽车音响中属于入门级的产品,因而缺乏竟争力,这也是为什么在零售市场上很难看到BOSE汽车音响的原因。据4S店的人员介绍,马六轿跑的原车音响价值超过一万元。刚开始听5的时候确实比其他车效果要好。但听久了发现也很一般,主要是高中音层次感不强,声音容易混,低音下潜不够。后来把原车喇叭拆下来后发现了原因所在。在本例中,马六即马自达六的昵称。现有的命名实体识别的技术很多已经比较成熟,命名实体(NamedEntity,简称NE)是指识别文本中具有特定意义的实体。主要包括人名、地名、机构名、时间、数字以及专有名词等六种。但是,现有的命名实体识别的技术基本都集中在传统的命名实体识别问题上,譬如人名、地名、机构名、时间、数字等等。而现在人们已经开始关注一些特殊的命名实体识别问题,譬如产品名命名实体识別、缩略语识别以及生物学领域内的术语变形识别。但是,这些方法在昵称识别的时候都不适用。
发明内容本发明要解决的技术问题是提供一种在中文文本中识别汽车昵称的方法和装置,能够根据昵称独有的特征来进行文本中昵称的识别。为了解决上述问题,本发明提供了一种在中文文本中识别汽车昵称的方法,包括选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并4艮据所述训练集确定对应于各种昵称组成方式的多个状态模板;抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。进一步地,所述的方法还包括建立一个单字形容词库;对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。进一步地,所述状态序列中的状态包括以下类型前缀、主体词、后缀及其它;所述状态模板包括前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。进一步地,根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列是指采用基于HMM-Viterbi的模型,用所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。进一步地,通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指对于各所述观察序列T=(t,,t2,…U),m>0,其状态序列S为(s,s2,...sm),m>0;则分别得到各个T最匹配的状态序列S#,S-为最接近Sj的状态序列。本发明还提供了一种在中文文本中识别汽车昵称的装置,包括存储单元,用于保存训练集;所述训练集包含多个含有至少一种汽车昵称的文本,并且各所述文本中出现的汽车昵称已标注出;以及保存对应于各种昵称组成方式的多个状态模板;提取单元,用于抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;选择单元,用于根据所述训练集为所得到的各观察序列分别计算最大可7能的状态序列;匹配单元,用于分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。进一步地,所述存储单元还用于保存单字形容词库;所述提取单元对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。进一步地,所述状态序列中的状态包括以下类型前缀、主体词、后缀及其它;所述存储单元保存的状态模板包括前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。进一步地,所述选择单元具体包括训练模块,用于根据所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;所述模型为基于HMM-Viterbi的模型;计算模块,用于通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。进一步地,所述计算模块通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指-.所述计算模块对于各所述观察序列T-(t!,t2,…tm),m〉0,其状态序列S为(ShS2,…Sm),m〉0;得到T最匹配的状态序列S^为最接近S/的状态序列;S卢为<formula>formulaseeoriginaldocumentpage8</formula>本发明针对昵称的命名规则,昵称的特点等设计了昵称识别的技术方案,可以准确识别出文本中出现的昵称。使用该才莫型识别出的汽车昵称可以建立汽车昵称知识库;然后应用该汽车昵称知识库在汽车领域内进行数据挖掘、信息提取等,还可以用于改进汽车领域内的搜索引擎。图1为实施例一中例子里维特比算法I的转移矩阵的示意图2为实施例一中例子里维特比算法II的角色选择示意图3为实施例二中在中文文本中识别汽车昵称的装置的示意框图。具体实施例方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。本发明的技术方案首先给定汽车昵称一个数学定义,通过对该定义的分析,使用机器学习的方法来得到模型,使用该模型识别出的汽车昵称可以建立汽车昵称知识库;然后应用该汽车昵称知识库在汽车领域内进行数据挖掘、信息提取等,还可以用于改进汽车领域内的搜索引擎。实施例一,一种在中文文本中识别汽车昵称的方法,包括A、采集数据,选择多个含有至少一种汽车昵称的文本作为训练集,手动标注出训练集中各文本中出现的汽车昵称和昵称所对应的标准名,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;本实施例中,选取国内比较著名的几大汽车论坛,从中选取了若干篇文章。经过手动筛选,选出含有至少一种汽车昵称的文章,作为训练集。对训练集的数据手动标注出现在各文章中的汽车昵称和昵称所对应的标准名,并确定对应于各种昵称组成方式的多个状态模板。比如一些汽车厂家的汽车的常见昵称如下一汽马自达一一马自达六马六(马6);一汽马自达一一马自达三马三(马3,马叁,马III);长安福特马自达福克斯---J、福,小红福;一汽大众——迈腾小迈,MT,小M,小T,小MT,TT,MM;一汽大众——宝来宝宝,小宝,小BB;一汽丰田——锐志小R,RZ;东风雪铁龙——C2:小C;长安铃木——羚羊小羊,羊羊;先对昵称进行一个详细的定义。本实施例中,定义昵称包括3个部分:前缀、主体词、后缀;昵称定义方式及例子如表l所示表l、昵称定义组成部分描述例子前缀一般出现在昵称最前面部分的词',小,,,.,胖,,,,.白,,等主体词来自汽车原名以及相关信息(譬如商标)中的词以"标致"为例,"标"、"致"、"狮"都是主体词后缀一4殳出现在昵称最后面部分的词"子","儿",数字等根据对大量网页的学习,得到昵称的状态模板至少包括如表2所示的几种表2、昵称的状态模板主体词比如星星(北斗星),XY(轩逸)前乡晨+主体词比如白星(北斗星),小白星(北斗星)前缀+后缀小3(马自达3),小6(QQ6)主体词+后缀比如虫子(曱壳虫),虫虫2.5(甲壳虫2.5)前缀+主体词+后缀比如紫轩2.0(轩逸),小虫子(甲壳虫)B、建立一个单字形容词库,在标注的时候使用。本实施例中,所述单字形容词库主要由颜色词单个字的形容词等构成。譬如红、黑、白、小、大、胖等等。但"银灰,,则不属于。因为这种多个字的形容词较为复杂,出于简洁考虑,人们不会在昵称中使用复杂的形容词。C、用所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;本实施例中,采用基于HMM-Viterbi的模型,实际应用中不排除采用其它的模型。步骤A到C可以不分先后,并行执行;其中,步骤B中还可以是建立其它标注时需要用的词库,另外所建立的形容词库在需要时也不排除是多字的。10D、抓取网页中的文本,将该文本分割为句子,分别将各句中包含的每个字标注为主体词、单字形容词、字母序列、数字序列、语气词以及其他等观察类型中的一种,得到分别对应于各句的观察序列;当一个字在所述单字形容词库中存在时,标注为单字形容词。定义观察序列T:(TbT2,…Tm),状态序列R:(R!,R2,…Rm)。观察序列T-(T,,T2,…Tm)如表3所示。表3、观察序列<table>tableseeoriginaldocumentpage11</column></row><table>。表4、状态序列<table>tableseeoriginaldocumentpage11</column></row><table>E、用隐马尔可夫模型时,通过Viterbi算法寻优计算最大可能的状态序列。如果采用其它模型,也不排除用其它方式找到可能性最大的状态序列。为所得到的各观察序列分别选择一个可能性最大的状态序列。假设S是T的状态序列,且S-是T最匹配的状态序列,则有Tm,t2,…tm),S=(SbS2,…Sm),m〉0;S*=argmax,|r)(El)P为概率。根据贝叶斯分类理^仑可得P(S|T)=P(S)P(T|S)/P(T)(E2)因为对一个给定的序列,可观察到的序列T是固定的,也就是P(T)是一个常量。因此,在El和E2的基础上可以得到E3:R#=argmax尸(S)尸(r15")(E3)根据隐马尔可夫模型,状态序列与观察序列一一对应且状态序列是隐藏于观察序列之后,无法观测但可以计算出最大的概率。所以,根据隐马尔可夫模型的定义有<formula>formulaseeoriginaldocumentpage12</formula>(E4)因为T是观察序列,并且T的值是已经观察到的事实,所以P(T)=1.因此,<formula>formulaseeoriginaldocumentpage12</formula>(E5)因为所有的概率都小于l,考虑到精度误差,把概率转换为对数S#aargjnax;Q二(ln尸(,,^,)+ln尸0y,(E6)然后就可以通过解以上这个方程,找到最匹配的状态序列S。F、分别根据所计算出的状态序列中每个词的状态,将各所述状态序列与所迷状态模板进行匹配,确认所迷状态序列中与所述状态模板中的一个相匹配的部分为昵一尔。下面用一个具体的例子进行说明。图1中,第一行的"紫轩2.0很好"为原文中的一句话。第二行的color,main,num,other,adj代表了标注出的》见察序列。*接下来的第三行到第六行是隐马尔可夫序列的状态转移矩阵。图2是对图1进行的优化,对于有些不可能的转移,直接标记Impossible。通过该状态转移矩阵,会找出权值之和最大的一条路径,路径上每个字对应的状态即为最佳状态,确定上述那句话的状态序列。而后,根据事先已约定好的昵称的状态模板(前缀+后缀,前缀+主体词,主体词+后缀,前缀+主体词+后缀,主体词),从路径上每个词所对应的隐藏状态中选取出可匹配的昵称。例如图2中,可以确定各词的状态紫/前缀,轩/主体词,2.0/后缀,真/其他,好/前缀。根据各词的状态匹配所述状态模板,前缀+主体词+后缀是一个昵称最可能出现的状态模板,而单纯的前缀不是一个状态模板。故,紫轩2.0是昵称。实施例二,一种在中文文本中识别汽车昵称的装置,如图3所示,包括存储单元,用于保存训练集;所述训练集包含多个含有至少一种汽车昵称的文本,并且各所述文本中出现的汽车昵称已标注出;以及保存对应于各种昵称组成方式的多个状态模板;提取单元,用于抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;选择单元,用于根据所述训练集为所得到的各观察序列分别计算最大可能的状态序列;匹配单元,用于分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。本实施例中,所述存储单元还可以用于保存单字形容词库;所述提取单元对各句中包含的每个字进行标注时,可以将每个字标注为以下观察类型中的一种主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。本实施例中,所述状态序列中的状态可以但不限于包括以下类型前缀、主体词、后缀及其它;所述存储单元保存的状态模板可以但不限于包括前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。本实施例中,所述选择单元具体可以包括训练模块,用于根据所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;所述模型为基于HMM-Viterbi的模型;计算冲莫块,用于通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。本实施例中,所述计算模块通过Viterbi算法寻优计算出各观察序列最大可能的状态序列可以是指所述计算模块对于各所述观察序列T-(t!,t2,…tm),m>0,其状态序列S为(s!,S2,…Sm),m>0;得到T最匹配的状态序列S-为最接近Sj的状态序列;S^为^=arg,ax]X,(鸣Is,)+l,,|《—')}。其它实现细节可以同实施例一中相同。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。权利要求1、一种在中文文本中识别汽车昵称的方法,包括选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。2、如权利要求l所述的方法,其特征在于,还包括建立一个单字形容词库;对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。3、如权利要求l所述的方法,其特征在于,所述状态序列中的状态包括以下类型前缀、主体词、后缀及其它;所述状态模板包括前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。4、如权利要求1到3中任一项所述的方法,其特征在于,根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列是指采用基于HMM-Viterbi的模型,用所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。5、如权利要求4所述的方法,其特征在于,通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指对于各所述观察序列T=(t,,t2,…tn0,m>0,其状态序列S为(s,,s2,...sm),m〉0;贝'J分别得到各个T最匹配的状态序列S#,S"为最接近S^的状态序列。6、一种在中文文本中识别汽车昵称的装置,其特征在于,包括存储单元,用于保存训练集;所述训练集包含多个含有至少一种汽车昵称的文本,并且各所述文本中出现的汽车昵称已标注出;以及保存对应于各种昵称组成方式的多个状态模板;提取单元,用于抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;选捧单元,用于才艮据所述训练集为所得到的各观察序列分别计算最大可能的状态序列;匹配单元,用于分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。7、如权利要求6所述的装置,其特征在于所述存储单元还用于保存单字形容词库;所述提取单元对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。8、如权利要求6所述的装置,其特征在于,所述状态序列中的状态包括以下类型前缀、主体词、后缀及其它;所述存储单元保存的状态模板包括前缀加后缀、前缀加主体词、主体词加后缀、前纟氣加主体词加后缀、以及主体词。9、如权利要求6到8中任一项所述的装置,其特征在于,所述选择单元具体包括训练模块,用于根据所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;所述模型为基于HMM-Viterbi的模型;计算才莫块,用于通过Viterbi算法寻优计算出各M^察序列最大可能的状态序列。10、如权利要求9所述的装置,其特征在于,所述计算模块通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指所述计算模块对于各所述观察序列丁=({^2,...^),m〉0,其状态序列S为(ShS2,…Sm),m>0;得到T最匹配的状态序列8#为最接近S/的状态序列;S/为全文摘要本发明公开了一种在中文文本中识别汽车昵称的方法和装置;所述方法包括选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。本发明可以准确识别出文本中出现的昵称。文档编号G06N99/00GK101576911SQ20091008507公开日2009年11月11日申请日期2009年5月31日优先权日2009年5月31日发明者于文渊,珵王申请人:北京学之途网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1