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

上传人:e2 文档编号:969233 上传时间:2018-03-22 格式:PDF 页数:15 大小:718.45KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910085071.5

申请日:

2009.05.31

公开号:

CN101576911A

公开日:

2009.11.11

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30公开日:20091111|||实质审查的生效|||公开

IPC分类号:

G06F17/30; G06N1/00

主分类号:

G06F17/30

申请人:

北京学之途网络科技有限公司

发明人:

王 珵; 于文渊

地址:

102218北京市朝阳区塞纳维拉水景花园40号楼4007室

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司

代理人:

龙 洪;霍育栋

PDF下载: PDF下载
内容摘要

本发明公开了一种在中文文本中识别汽车昵称的方法和装置;所述方法包括:选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。本发明可以准确识别出文本中出现的昵称。

权利要求书

1、  一种在中文文本中识别汽车昵称的方法,包括:
选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;
抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;
根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;
分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。

2、
  如权利要求1所述的方法,其特征在于,还包括:
建立一个单字形容词库;
对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种:主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。

3、
  如权利要求1所述的方法,其特征在于,所述状态序列中的状态包括以下类型:
前缀、主体词、后缀及其它;
所述状态模板包括:
前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。

4、
  如权利要求1到3中任一项所述的方法,其特征在于,根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列是指:
采用基于HMM-Viterbi的模型,用所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。

5、
  如权利要求4所述的方法,其特征在于,通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指:
对于各所述观察序列T=(t1,t2,...tm),m>0,其状态序列S为(s1,s2,...sm),m>0;则
S1#=argmaxSΠi=1m{lnP(ti|si)+lnP(si|Si-1)}]]>
分别得到各个T最匹配的状态序列S#,S#为最接近S1#的状态序列。

6、
  一种在中文文本中识别汽车昵称的装置,其特征在于,包括:
存储单元,用于保存训练集;所述训练集包含多个含有至少一种汽车昵称的文本,并且各所述文本中出现的汽车昵称已标注出;以及保存对应于各种昵称组成方式的多个状态模板;
提取单元,用于抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;
选择单元,用于根据所述训练集为所得到的各观察序列分别计算最大可能的状态序列;
匹配单元,用于分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。

7、
  如权利要求6所述的装置,其特征在于:
所述存储单元还用于保存单字形容词库;
所述提取单元对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种:主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。

8、
  如权利要求6所述的装置,其特征在于,所述状态序列中的状态包括以下类型:
前缀、主体词、后缀及其它;
所述存储单元保存的状态模板包括:
前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。

9、
  如权利要求6到8中任一项所述的装置,其特征在于,所述选择单元具体包括:
训练模块,用于根据所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;所述模型为基于HMM-Viterbi的模型;
计算模块,用于通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。

10、
  如权利要求9所述的装置,其特征在于,所述计算模块通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指:
所述计算模块对于各所述观察序列T=(t1,t2,...tm),m>0,其状态序列S为(s1,s2,...sm),m>0;得到T最匹配的状态序列S#为最接近S1#的状态序列;S1#为:
S1#=argmaxSΠi=1m{lnP(ti|si)+lnP(si|Si-1)}.]]>

说明书

一种在中文文本中识别汽车昵称的方法和装置
技术领域
本发明涉及信息检索领域,尤其涉及一种在中文文本中识别汽车昵称的方法和装置。
背景技术
伴随着互联网的高速发展,人们的生活越来越依赖于网络。而一种新的文化正在渐渐的形成。人们越来越多地使用昵称以及简短的称呼来代替一些物品的原有名称。昵称,也就是俗称的小名。昵称一般用于日常生活中,多见于口语。用以表达一种喜爱之情。昵称和简称是有重叠的,有时候简称也是一种昵称。人们为了简化某些复杂的称呼便用昵称来代替。
随着经济的发展,拥有私人汽车的人越来越多,人们越来越多地在网上交流对车的使用心得。不仅仅是和汽车有关的新闻,人们在买车的时候会更多地注重已拥有同款车型的车主的感受,而不是很多记者写的介绍基本型号、性能的新闻评论类文章。并且人们的车如果遇见问题,也经常会上网求助大家,所以,论坛上车主的帖子往往会有极高的价值。可问题也随之而来,绝大部分车主都会给自己心爱的汽车起昵称或者用别名来称呼。车名、型号这些数据都可以直接抓取,建立对应的库便可以轻松的处理。可汽车昵称却多种多样。比如在某个论坛的马自达子论坛中有如下文本:
马六音响精彩升级
马六车型用的是美国BOSE的音响。不过BOSE的音响现在基本都是贴牌生产的。而且BOSE的汽车音响远没有在家庭音响中影响力那么大,可以说是性价比很低的产品,在汽车音响中属于入门级的产品,因而缺乏竞争力,这也是为什么在零售市场上很难看到BOSE汽车音响的原因。
据4S店的人员介绍,马六轿跑的原车音响价值超过一万元。刚开始听的时候确实比其他车效果要好。但听久了发现也很一般,主要是高中音层次感不强,声音容易混,低音下潜不够。后来把原车喇叭拆下来后发现了原因所在。
在本例中,马六即马自达六的昵称。
现有的命名实体识别的技术很多已经比较成熟,命名实体(NamedEntity,简称NE)是指识别文本中具有特定意义的实体。主要包括人名、地名、机构名、时间、数字以及专有名词等六种。但是,现有的命名实体识别的技术基本都集中在传统的命名实体识别问题上,譬如人名、地名、机构名、时间、数字等等。而现在人们已经开始关注一些特殊的命名实体识别问题,譬如产品名命名实体识别、缩略语识别以及生物学领域内的术语变形识别。但是,这些方法在昵称识别的时候都不适用。
发明内容
本发明要解决的技术问题是提供一种在中文文本中识别汽车昵称的方法和装置,能够根据昵称独有的特征来进行文本中昵称的识别。
为了解决上述问题,本发明提供了一种在中文文本中识别汽车昵称的方法,包括:
选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;
抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;
根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;
分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。
进一步地,所述的方法还包括:
建立一个单字形容词库;
对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种:主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。
进一步地,所述状态序列中的状态包括以下类型:
前缀、主体词、后缀及其它;
所述状态模板包括:
前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。
进一步地,根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列是指:
采用基于HMM-Viterbi的模型,用所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。
进一步地,通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指:
对于各所述观察序列T=(t1,t2,...tm),m>0,其状态序列S为(s1,s2,...sm),m>0;则
S1#=argmaxSΠi=1m{lnP(ti|si)+lnP(si|Si-1)}]]>
分别得到各个T最匹配的状态序列S#,S#为最接近S1#的状态序列。
本发明还提供了一种在中文文本中识别汽车昵称的装置,包括:
存储单元,用于保存训练集;所述训练集包含多个含有至少一种汽车昵称的文本,并且各所述文本中出现的汽车昵称已标注出;以及保存对应于各种昵称组成方式的多个状态模板;
提取单元,用于抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;
选择单元,用于根据所述训练集为所得到的各观察序列分别计算最大可能的状态序列;
匹配单元,用于分别根据所计算出的状态序列中每个词的状态,将各状态序列与所述状态模板进行匹配,确认状态序列中与所述状态模板中的一种相匹配的部分为昵称。
进一步地,所述存储单元还用于保存单字形容词库;
所述提取单元对各句中包含的每个字进行标注时,将每个字标注为以下观察类型中的一种:主体词、单字形容词、字母序列、数字序列、语气词以及其他;当一个字在所述单字形容词库中存在时,标注为单字形容词。
进一步地,所述状态序列中的状态包括以下类型:
前缀、主体词、后缀及其它;
所述存储单元保存的状态模板包括:
前缀加后缀、前缀加主体词、主体词加后缀、前缀加主体词加后缀、以及主体词。
进一步地,所述选择单元具体包括:
训练模块,用于根据所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;所述模型为基于HMM-Viterbi的模型;
计算模块,用于通过Viterbi算法寻优计算出各观察序列最大可能的状态序列。
进一步地,所述计算模块通过Viterbi算法寻优计算出各观察序列最大可能的状态序列是指:
所述计算模块对于各所述观察序列T=(t1,t2,...tm),m>0,其状态序列S为(s1,s2,...sm),m>0;得到T最匹配的状态序列S#为最接近S1#的状态序列;S1#为:
S1#=argmaxSΠi=1m{lnP(ti|si)+lnP(si|Si-1)}.]]>
本发明针对昵称的命名规则,昵称的特点等设计了昵称识别的技术方案,可以准确识别出文本中出现的昵称。使用该模型识别出的汽车昵称可以建立汽车昵称知识库;然后应用该汽车昵称知识库在汽车领域内进行数据挖掘、信息提取等,还可以用于改进汽车领域内的搜索引擎。
附图说明
图1为实施例一中例子里维特比算法I的转移矩阵的示意图;
图2为实施例一中例子里维特比算法II的角色选择示意图;
图3为实施例二中在中文文本中识别汽车昵称的装置的示意框图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
本发明的技术方案首先给定汽车昵称一个数学定义,通过对该定义的分析,使用机器学习的方法来得到模型,使用该模型识别出的汽车昵称可以建立汽车昵称知识库;然后应用该汽车昵称知识库在汽车领域内进行数据挖掘、信息提取等,还可以用于改进汽车领域内的搜索引擎。
实施例一,一种在中文文本中识别汽车昵称的方法,包括:
A、采集数据,选择多个含有至少一种汽车昵称的文本作为训练集,手动标注出训练集中各文本中出现的汽车昵称和昵称所对应的标准名,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;
本实施例中,选取国内比较著名的几大汽车论坛,从中选取了若干篇文章。经过手动筛选,选出含有至少一种汽车昵称的文章,作为训练集。对训练集的数据手动标注出现在各文章中的汽车昵称和昵称所对应的标准名,并确定对应于各种昵称组成方式的多个状态模板。
比如一些汽车厂家的汽车的常见昵称如下:
一汽马自达——马自达六:马六(马6);
一汽马自达——马自达三:马三(马3,马叁,马III);
长安福特马自达福克斯——小福,小红福;
一汽大众——迈腾:小迈,MT,小M,小T,小MT,TT,MM;
一汽大众——宝来:宝宝,小宝,小BB;
一汽丰田——锐志:小R,RZ;
东风雪铁龙——C2:小C;
长安铃木——羚羊:小羊,羊羊;
先对昵称进行一个详细的定义。本实施例中,定义昵称包括3个部分:前缀、主体词、后缀;昵称定义方式及例子如表1所示:
表1、昵称定义

  组成部分 描述  例子  前缀 一般出现在昵称最前面部分的词  “小”,“胖”,“白”等  主体词 来自汽车原名以及相关信息(譬如商 标)中的词  以“标致”为例,“标”、“致”、  “狮”都是主体词  后缀 一般出现在昵称最后面部分的词  “子”,“儿”,数字等

根据对大量网页的学习,得到昵称的状态模板至少包括如表2所示的几种:
表2、昵称的状态模板
  主体词  比如:星星(北斗星),XY(轩逸)  前缀+主体词  比如:白星(北斗星),小白星(北斗星)  前缀+后缀  比如:小3(马自达3),小6(QQ6)  主体词+后缀  比如:虫子(甲壳虫),虫虫2.5(甲壳虫2.5)  前缀+主体词+后缀  比如:紫轩2.0(轩逸),小虫子(甲壳虫)

B、建立一个单字形容词库,在标注的时候使用。
本实施例中,所述单字形容词库主要由颜色词单个字的形容词等构成。譬如:红、黑、白、小、大、胖等等。但“银灰”则不属于。因为这种多个字的形容词较为复杂,出于简洁考虑,人们不会在昵称中使用复杂的形容词。
C、用所述训练集进行模型训练,得到状态转移矩阵及状态发射矩阵;
本实施例中,采用基于HMM-Viterbi的模型,实际应用中不排除采用其它的模型。
步骤A到C可以不分先后,并行执行;其中,步骤B中还可以是建立其它标注时需要用的词库,另外所建立的形容词库在需要时也不排除是多字的。
D、抓取网页中的文本,将该文本分割为句子,分别将各句中包含的每个字标注为主体词、单字形容词、字母序列、数字序列、语气词以及其他等观察类型中的一种,得到分别对应于各句的观察序列;当一个字在所述单字形容词库中存在时,标注为单字形容词。
定义观察序列T=(T1,T2,...Tm),状态序列R=(R1,R2,...Rm)。
观察序列T=(T1,T2,...Tm)如表3所示。
表3、观察序列
  观察类型  描述  例子  主体词  出现在汽车名字及相关信息中的词  宝(宝马),马(宝马)  单字形容词  只由一个汉字构成的形容词  “紫”,“小”,“胖”  字母序列  连续的字母序列  “BMW”,“QQ”  数字序列  各种表达方式下的数字序列  “三”,“2.0”,“III”,  “3000”  语气词  表示亲昵的语气词  “儿”,“子”,“仔”  其他词  其余的词

状态序列S=(S1,S2,...Sm)如表4所示。
表4、状态序列
  状态类型 描述例子  前缀 一般出现在昵称最前面部分的词“小”,“胖”,“白”等  主体词 来自汽车原名以及相关信息(譬如商 标)中的词以“标致”为例,“标”、“致”、“狮”都是主体词  后缀 一般出现在昵称最后面部分的词“子”,“儿”,数字等  其它 文本中其他不出现在昵称中的词

E、用隐马尔可夫模型时,通过Viterbi算法寻优计算最大可能的状态序列。如果采用其它模型,也不排除用其它方式找到可能性最大的状态序列。
为所得到的各观察序列分别选择一个可能性最大的状态序列。
假设S是T的状态序列,且S#是T最匹配的状态序列,则有
T=(t1,t2,...tm),S=(s1,s2,...sm),m>0;
S#=argmaxSP(S|T)---(E1)]]>
P为概率。
根据贝叶斯分类理论可得P(S|T)=P(S)P(T|S)/P(T)        (E2)
因为对一个给定的序列,可观察到的序列T是固定的,也就是P(T)是一个常量。因此,在E1和E2的基础上可以得到E3:
R#=argmaxSP(S)P(T|S)---(E3)]]>
根据隐马尔可夫模型,状态序列与观察序列一一对应且状态序列是隐藏于观察序列之后,无法观测但可以计算出最大的概率。所以,根据隐马尔可夫模型的定义有:
P(S)P(T|S)≈Πi=1mP(ti|si)P(si|Si-1)---(E4)]]>
where s is the beginning of the sentence
因为T是观察序列,并且T的值是已经观察到的事实,所以P(T)=1.因此,
S#≈argmaxSΠi=1mP(ti|si)P(si|Si-1)---(E5)]]>
因为所有的概率都小于1,考虑到精度误差,把概率转换为对数:
S#≈argmaxSΠi=1m{lnP(ti|si)+lnP(si|Si-1)}---(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=(t1,t2,...tm),m>0,其状态序列S为(s1,s2,...sm),m>0;得到T最匹配的状态序列S#为最接近S1#的状态序列;S1#为:
S1#=argmaxSΠi=1m{lnP(ti|si)+lnP(si|Si-1)}.]]>
其它实现细节可以同实施例一中相同。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

一种在中文文本中识别汽车昵称的方法和装置.pdf_第1页
第1页 / 共15页
一种在中文文本中识别汽车昵称的方法和装置.pdf_第2页
第2页 / 共15页
一种在中文文本中识别汽车昵称的方法和装置.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《一种在中文文本中识别汽车昵称的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种在中文文本中识别汽车昵称的方法和装置.pdf(15页珍藏版)》请在专利查询网上搜索。

本发明公开了一种在中文文本中识别汽车昵称的方法和装置;所述方法包括:选择多个含有至少一种汽车昵称的文本作为训练集,标注出训练集中各文本中出现的汽车昵称,并根据所述训练集确定对应于各种昵称组成方式的多个状态模板;抓取网页中的文本,将该文本分割为句子,分别对各句中包含的每个字标注其观察类型,得到分别对应于各句的观察序列;根据所述训练集为所得到的各观察序列分别选择最大可能的状态序列;分别根据所计算出的状。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1