搜档网
当前位置:搜档网 › 图书信息领域中文问句浅层语义分析技术

图书信息领域中文问句浅层语义分析技术

图书信息领域中文问句浅层语义分析技术
图书信息领域中文问句浅层语义分析技术

第40卷 第4期2009年7月 太原理工大学学报

JO U RN AL O F T A IY U A N U NI VERSIT Y O F T ECH NO L OG Y

V ol.40N o.4

Jul.2009

文章编号:1007 9432(2009)04 0356 05

图书信息领域中文问句浅层语义分析技术

郭 涛a,郭 浩b

(太原理工大学a 网络技术中心;b 理学院,山西太原030024)

摘 要:阐述了面向开放领域和受限领域中文问句处理方法的异同,讨论了在受限领域(图书信息领域)中文问句处理的思路。在当前汉语言句法分析技术尚无法达到应用级别水平的前提下,提出了基于语义块识别的中文问句浅层语义分析技术。给出了语义块的定义、规约规则以及问句向量的生成方法,最终实现对中文问句的浅层语义挖掘,以满足实际应用的需要。实验证明,该方法在语料较为稀疏时,具有良好的效果。

关键词:问答系统;问句处理;语义块识别;自然语言处理

中图分类号:T P181 文献标识码:A

问答系统作为新兴的信息检索技术,已经成为学界的研究热点。问句处理是问答系统中重要的组成部分,其对问句的理解程度,语义挖掘的深度和广度将直接影响到系统的整体性能。对于中文问答系统而言,目前仍处于探索阶段,尚未出现较为成熟的问答系统。其对问句的处理由于受到汉语言自身的语法、语义的复杂性以及句法分析技术尚无法满足实际应用的影响,无法对问句进行更深层的语义挖掘。笔者针对受限领域(图书信息领域),提出了基于语义块识别的中文问句浅层语义分析技术,挖掘问句中的未知和已知信息,并在领域级别中正确地理解和解释它们。实验证明,该方法在语料较为稀疏时,具有良好的效果。

汉语语言学把中文问句分为疑问句、设问句和反问句,只有疑问句才是用来询问信息的,疑问句又分为是非问句、选择问句和特指问句[1]。目前学术界在问句处理环节的研究重点放在了一般疑问句中的特指问句。TREC2006发布的训练集(TREC 2006QA track data definition)中,所有492个问题均属于特指问句。所以,我们同样只选择了特指问句作为我们主要的研究目标。下文中,除有特殊说明,所述"问句"均为特指问句。

1 基于语义块的问句浅层语义分析

传统的问句分析方法一般要求实现如下功能:

1)能够进行分词、名实体识别、词性标注和组块分析。对用户问句进行分词、名实体识别、词性标注和组块分析,可为提取问句答案类型服务,又可为语义相似度计算做准备。

2)实现问句答案类型分析。对于用户提交的问题首先要对问题进行分析,确定用户问句中用户信息需求所属的语义类别,以确定答案抽取的对象。

3)实现问句关键词提取。并不是在问题中的每个词都可以提取出作为检索系统的关键词,要求在用户提问的问题中提取出对后面检索系统有用的关键词,而屏蔽停用词,并生成用户问句向量。

4)实现问句关键词扩展。扩展疑问关键词的原因在于答案句中某些词常常不是原来问题中的关键词,而是关键词的同义扩展。

在研究中我们发现,同传统的面向开放领域的问答系统相比,我们的系统是面向受限领域(图书信息领域),这就意味着我们的需要处理的问句将会集中在图书领域内,且问句在这个领域内的特性将被强化,这些特性包括用词、语序、特殊搭配等。为了在问句处理中实现更深层次的语义挖掘,传统的方法只基于关键字的抽取是不够的。不仅要把关键字正确的抽取出来,还要对关键字进行正确的领域级别的语义解释。所以,以上两点决定了我们的问句处理不能够按照传统的分析方法进行。实验中,我们采用了CoNLL(Computatio nal Natural Lan guage Lear ning)提出的组块(Chunk)任务作为理论依据,定义了图书信息领域的问句语义块及其规约

*收稿日期:2008 09 18

作者简介:郭涛(1978-),男,山西祁县人,硕士,讲师,主要从事计算机网络与智能信息处理,(E m ail)gu otao@https://www.sodocs.net/doc/e912058594.html,

规则。以此为基础,对问句进行浅层语义分析,来获取正确的问句语义分析形式化描述 问句向量。语义块定义及语义块规约规则将在下文详细论述。

问句处理模块逻辑结构如图1

所示。

图1 问句处理模块逻辑结构图

模块功能说明如下:

1)问句预处理。对自然问句进行分词,词性标注,去除停用词,命名实体识别等处理。

2)浅层语义分析。对分词词性标注句进行浅层语义分析,包括语义块识别及规约。

3)问句向量生成。对语义块标注句进行分析,获取其中的已知信息及未知信息,生成问句向量。

2 语义块的定义

面向开放领域中,问题类型为问题焦点所在,即该问题所对应的答案的类型。对不同类型的问题,往往有不同的处理方法,所以在问题的分析阶段首先要对问题进行分类。在英语中,问题分类是比较简单的,因为英语中的问句一般都是通过疑问词(例如w here,w hen,w ho ,w hat time)开头。而且疑问词的数目极其有限。但对于汉语,问句的提问方式要灵活得多。这就使得汉语中的问题分类必须考虑的问题增多了。

目前的问答系统研究中,面向开放领域的研究较多。但在对于中文问句答案类型,各研究机构标准并不统一。如:哈工大应用软件教研室的QA CAS 系统采用的是尺寸、时间、数量值、事情、类型、原因、是、位置、人、方式、原因、实体、高度、距离、年龄、效用、姓名、定义等18类;台湾资讯科学所的网际网络中文自然语言问答系统[2]则采用的是人、地、组织、物、时间、数字等6大类,62小类;蔡东风的基于网络的中文问答系统

[3]

则采用的是人、机构、地

点、数量、时间等16个类别。

我们的研究是面向图书领域的,由于领域问句具有其自身特点,传统的面向开放领域的问题类型不能直接套用,而需要根据其领域自身特点和应用需求,重新定义。

在对问句的研究中,我们发现,一个问句往往包含着一个或多个已知信息,一个或多个未知信息,不存在没有已知或未知信息的问句。而问句中的未知信息即是该问句所对应的答案的类型,即问题类型。其中的已知信息作为对未知信息的约束条件而存在。换句话说,只要我们正确地分析出了问句中所有的已知信息和未知信息,并在领域级别中解释了这些信息,便可以说我们完全地理解了这个问句。请看如下问句。

例1 请问有大学四年级学生用的民法学教材吗?

例1中,已知信息为教育水平是大学四年级学生、类别是民法,图书性质是教材,而其未知信息为该书的书名。

已知信息和未知信息对应到开放领域的研究中,实际上就是关键字及问题类型。问题类型及关键字的识别方法有很多,相关文献也已发表很多,在此不做赘述。但问题类型及关键字的识别上,仍有一个问题没有解决,即缺乏语义的理解。由于缺少语义词典的支持,使得对所抽取的信息(如关键字),无法进行深层次语义的挖掘。而在开放领域中,建立一部通用的语义词典是很困难的,即使只为满足某一特定应用而建。而在受限领域中,这个问题则变得相对容易。因为受限领域中的用词约束性较强,使得以建立领域词表对文本进行领域级别的语义解释成为可能。

通过对大量语料的分析,我们对问句中出现的图书领域相关概念进行了抽象,并定义为语义块(Chunk)。目前针对图书信息领域,已经建立语义块12个;语义子块52个。其中包括实体块,属性块,属性值块,描述块等。语义块定义片段见表1.

表1 语义块定义片段

中文全称英文全称英文简称描 述实 例实体块Entity Chunk EntC 某个实例的指称指代这本书、这家出版社属性块A tt ribut e Chunk At tC 某个属性的概念描述或抽象作者,出版社,

ISBN 属性值块

A tt ribut e ValueChunk

Att VC

某个实例的确定的属性值严蔚敏,清华大学出版社

描述块

Descript i o n Chunk

DesC

对于某个语义块的扩展性描述,主要为形容词,副词,连词等,同时包括一部分方位词,及时间词。以前,之后,关于

量词块

Quantifier Chunk

QuaC 特定量词

个,家,本

在此基础上,为语义块建立领域词表,其规模达

357

第4期 郭 涛等:图书信息领域中文问句浅层语义分析技术

单词187个,词组58个(命名实体28个)。同时,在问句中的命名实体识别问题上,由于命名实体识别研究,特别是人名和组织机构名的识别上,在学界仍属研究热点,方法也很多,但依然尚不成熟,目前尚未达到实际应用阶段。由于命名实体识别在本课题中,不是主要研究内容,所以,在该问题的处理上,我们选择了技术难度最低的词表匹配方法,以解决该问题。研究中,我们将命名实体作为词表归入词组类中,其中包括人名3个,出版社名25个。

特别的,我们定义了语义块 未知块,用以对应未在词表中出现的单词和词组。如图2

所示。

图2 词表片段

这样,我们就可以对问句进行语义块的识别工作。如例句:

例2 清华大学出版社出版过哪些关于java 类的书?

经过分词,词性标注及去停用词操作后,对其进行语义块识别,得到标记结果如下:

[Chunk=At tVC,T y pe=A ttV C_P ubN ,Value='清华大学出版社'][Chunk=Ev eC,T ype=RelEC _PubN,V alue ='出版'][Chunk=Pr oC,T ype =IntPC,V alue='哪些'][Chunk =DesC,T ype=R esDC_Con,V alue='关于'][Chunk=U n kC,V alue='Java'][Chunk=Att C,T y pe =A ttC_Co n,V alue ='类'][Chunk=At tC,T y pe=A ttC_T it,Value='书']

语义块标记规则如下:

1)语义块标记以关键字 [ 开始,以关键字 ] 结束

2)关键字Chunk 为所属语义块英文简称

3)关键字T ype 为所属语义块类型(子块)英文简称。(如果该块有类型分类的话,不标明的话默认为Ty pe=*,如果没有类型分类的话可不标明)4)关键字Value 在问句标记中,表示问句中该块的值;在语义块规约规则和问题模板中,Value 表示该模板中,该块所允许出现的值

5)关键字*表示所有值,如Type=*表示所有类型子块,Value=*表示允许所有值。以上可省去不写,默认为T ype=*,Value=*

6)关键字/表示该块在模版中可有可无,此关

键字只允许出现在语义块开始标记 [ 之前

7)关键字|表示前后两个值均可。如Type=Att_til|Att_ISBN

由此,分析可得,上例中[Chunk=AttVC,Ty pe =AttVC _PubN,Value='清华大学出版社']块中,语义块为属性值块(AttVC),语义块类型(子块)为属性值-出版社名(AttVC_PubN ),其值为"清华大学出版社"。这样便可得知问句中,已知一个出版社名,且其值为"清华大学出版社"。同理可分析句中其他块。

3 语义块规约规则

在定义了语义块及其对应词表后,如何正确判定问句中的语义块便成了首要问题。在研究中我们发现,语义块是基于词和词组定义的。而实际语料中,有大量的问句中包含有一个或一个以上的短语,而这些短语的中心词又恰恰是语义块所对应的单词或词组。如果能够发现其中的一定特定组合和搭

配,使得我们在分析中去掉一些干扰信息。在信息不丢失的前提下,尽可能留下最少的有用信息,这将使得问句分析的准确性大大提高。如上例中,"出版"这个词和"清华大学出版社"构成了一个主谓短语。(单词"过"由于处于停用词表中,所以已经被去掉)该短语中,我们已经掌握了一个已知信息,即出版社名(AttV C _PubN )="清华大学出版社",此时,"出版"这个词,便成了无用信息,应该尽可能的去掉,以免干扰后续的分析。

由此,我们可知,一些固定搭配中的一些特定单词,是可以在分析中被抛弃而不影响分析的正确性的。如例2,

[Chunk=A ttV C,T ype=Att VC_PubN,V alue='清华大学出版社'][Chunk=Ev eC,T y pe=RelEC_PubN ,Value='出版']

便可规约为

[Chunk=A ttV C,T ype=Att VC_PubN,V alue='清华大学出版社']

由此建立语义块规约规则:

[Chunk=A ttV C,T ype=Att VC_PubN,V alue=v alue1]=[Chunk =A ttV C,T y pe =A ttV C _P ubN ,V alue =value1][Chunk=EveC,T ype=RelEC_P ub,Value=v alue2]

等号左边为规约后形式,等号右边为规约前形式。规约后的取值由Value 关键字决定。所以我们需要尽可能多地找出这样的潜在规律,并将其形式化描述。研究中,我们共建立语义块规约规则48条。程序用文档如图3所示。

358

太原理工大学学报 第40卷

图3 语义块判断规则片段

这样,例2中,经过多次遍历规约,其最终的分析结果为:

[Chunk=At tVC,T y pe=A ttV C_P ubN,Value='清华大学出版社'][Chunk=Pr oC,T ype=I ntP C,V alue='哪些'] [Chunk=A ttV C,T ype=A ttV C_Co n,V alue='Java'] [Chunk=At tC,T y pe=A ttC_T it,Value='书']

4 问句向量

问句向量(Question Vector,简称QV)是对自然语言问句进行浅层语义分析,判断问句类型,获取关键字等处理,以充分理解用户问句意图后,利用特定规则的形式化语言对问句进行描述,忠实反映客观事实。不同领域,不同应用,不同需求对问句向量的生成应有不同的要求。

在我们对问句进行浅层语义标记、语义块识别、规约及未知信息判断处理后,便可得到我们所需要的语义信息。例2经过前期处理后,我们得到如下信息:

[Chunk=At tVC,T y pe=A ttV C_P ubN,Value='清华大学出版社'][Chunk=Pr oC,T ype=I ntP C,V alue='哪些'] [Chunk=A ttV C,T ype=A ttV C_Co n,V alue='Java'] [Chunk=At tC,T y pe=A ttC_T it,Value='书']

对如上标记信息进行分析,我们可以发现第一个块为属性值 出版社名块,其值为"清华大学出版社";第二个块为疑问代词块,其值为"哪些";第三个块为属性值 内容块,其值为"Java";第四个块为属性 书名块,其值为"书"。由语义块的定义我们可知,属性块是指"书的某个属性的概念描述或抽象",而属性值块是指"某个实例的确定的属性值"。这样,我们分析可知,属性值块中的值即为问句中的已知信息;而属性块的类型,即为问句的未知信息。如上例,该句的已知信息为"出版社名是清华大学出版社","图书内容是Jav a",该句的未知信息为"书名"。

所以可生成问句向量表示如下:

Q V=(PubN='清华大学出版社',Co n='Java',T it=?)

在研究中我们发现,在对问句进行浅层语义标记、语义块识别后,有一些句子会存在多个以上的属性类型词,这就使得我们在判定问句的未知信息时遇到了困难。如例句:

例3 清华大学出版社在2002年出版过哪些书?

该句经过语义块识别后,得到如下标记:

[Chunk=A ttV C,T ype=Att VC_PubN,V alue='清华大学出版社'][Chunk=A ttV C,T y pe=A ttV C_IssD,V alue=' 2002年'][Chunk=Ev eC,T ype=R elEC_P ubN,V alue='出版'][Chunk=Pro C,T ype=IntP C,V alue='哪些'][Chunk= A ttC,T ype=At tC_T it,V alue='书']

这句话中,由于在"清华大学出版社"和"出版"之间,加入了限制性介词短语"在2002年",而该介词短语又是重要的已知信息"属性值 出版时间",这样使得我们前面建立的语义块规约规则没有发挥功能,单词"出版"保留到了最后的分析结果中。这样的话,该句便出现了两个类型属性词。

我们发现,在我们抽取的45个例句中,只出现一个属性类型词的例句32句,多属性类型词的例句有13句。其中多属性类型词冲突的有8句,其中, AttC正确的有7句。

所以我们可知,由于属性类型词出现的个数较少,且能惟一的对应某一个图书属性,所以,在获取图书未知信息时,可以采取提取属性类型词的方法来确定问句中的未知信息。当属性类型词出现冲突的时候,利用规则中设定的类型权值来判断。规则如下:

1)属性块权值W eight_A ttC=1.0,事件块权值Weight_EveC=0.6,量词块权值W eight_Q uaC =0.3.

2)对于不同类型语义块出现冲突,根据权值进行判断。

3)如果出现两个AttC块,则判定为两个未知属性,不进行其他类型语义块的判定。

4)如问句中获取的属性类型词与已知信息冲突,则抛弃。

5)如问句中没有出现属性类型词,则默认判断该句未知信息为T it.

该规则完全是以经验主义方法建立。而我们知道,经验主义方法是与其相应的训练数据息息相关的。所以,该规则是否具有良好的可扩展性,仍需大量的数据对其进行检验。

5 测试结果与分析

在问句处理环节中,我们对根据问句的复杂程

359

第4期 郭 涛等:图书信息领域中文问句浅层语义分析技术

度,问句形式以及问句的焦点从问题总库中抽取例句,建立训练集,规模达167句;测试集,规模达647句以备后期研究使用。其测试结果统计见表2.

表2 问句分析正确率统计结果

类型训练集测试集

实际句数167647

语义块识别句数138435

语义块识别正确句数127289

查全率/%82.6367.23

查准率/%92.0266.43

F度量/%87.0866.82

在未知信息未识别的主要原因是问句的焦点信息,即问句的未知信息。并不是我们在语义块定义中的图书属性,这样,我们便没有在词表中定义与该属性相关的特征词。导致了在词表匹配的时候,造成了对该特征词的匹配失败。

未知信息识别错误的原因主要有如下两条:

1)问句中出现的特征词和词表中记录的特征词形式上发生了变化。

2)在多属性类型词冲突句中,其中属性类型级别较高的特征词未正确识别,而属性类型级别较低的特征词识别正确,则该问句的未知信息由被正确识别的类型级别较低的特征词决定,导致了其未知信息的识别错误。

引起已知信息识别错误的主要原因是相关已知信息特征词未定义,或者在某些特征词前缺失了引导词,导致了识别的失败。

6 不足与展望

目前,我们所做的问句分析方法实际上是避开了传统的句法分析方法,而在受限领域内,从数据出发,用经验主义方法建立语义块,并且从真实语料中抽出相关特征词,构建词表,以此正确地分析出问句中的未知信息和已知信息,达到应用级别的问句浅层语义分析的目的。

但这样的方法在语料较为稀疏的时候,表现尚可。当语料规模上升到一定级别后,这种方法便显得力不从心了。即便在目前的规模下,我们在建立语义块规约规则和属性类型判定规则时,就已经感觉到有些吃力了。

所以我们认为,在问句的分析过程中,句法分析仍然是重要的步骤。目前我们已经完成了对传统句法分析算法,包括欧雷算法,带概率的欧雷算法以及双向图算法的代码实现。并应用到问句分析中,目前已取得阶段性成果。

参考文献:

[1] 邵敬敏.现代汉语疑问句研究[M].华东师范大学出版社,1996:148.

[2] Day M in Yuh,Ong Chorng Shyong,Wen Lian H su.Qu estion Classification in English Chinese Cross Language Ques tion

Answ erin g:An Integrated Gen etic Algorithm and M achine Learning Approach[C]!T he IE EE Sy stems,M an and Cyb ernet

ics Society.IEEE International Con feren ce on Information Reuse and Integration(IEEE IRI2007),Las Vegas Nevada US A,

2007:203 208.

[3] 崔桓,蔡东风,苗雪雷.基于网络的中文问答系统及信息抽取算法研究[J].中文信息学报,2004(18):25.

[4] 夏天,樊孝忠,刘林,骆正华.基于ALICE的汉语自然语言接口[J].北京理工大学学报,2004(24):886.

[5] 秦兵,刘挺,王洋,郑实福,等.基于常问问题集的中文问答系统研究[J].哈尔滨工业大学学报,2003(35):1180.

[6] 张亮,黄河燕,胡春玲.中文问答系统模型研究[J].情报学报,2006(2):25.

Shallow Semantic Analysis of Chinese

Question in Book Information Domain

GUO Tao a,GUO Hao b

(a.N etw ork T echnology Center; b.College of Science of T UT,T aiy uan030024,China)

Abstract:Question analysis is an im por tant par t in QA sy stem.This article ex po unds the difference in Chinese question analy sis technolog y betw een open do main and restricted domain, discusses the train of tho ug ht of Chinese question analysis in book infor mation do main.U nder the pre condition that Chinese sy ntax analy sis technolog y can no t reach the practical application level recently,w e pro pose Chinese question shallow semantic parsing technolo gy on the basis of se m antic chunk.The ar ticle discusses the definition of semantic chunk,derivation rules and g enera tion technolog y of question vector.Ex perim ents prove that this method is feasible and effective w ith a less cor pus scale.

Key words:Q A system;question analysis;shallow semantic par sing;natur e lang ue process

(编辑:庞富祥)

360太原理工大学学报 第40卷

语义分析

语义分析 1.语义分析? 机器机和人不一样的地方是人可以直接理解词的意思,文章的意思,机器机不能理解。 人看到苹果这两个字就知道指的是那个圆圆的,挺好吃的东西,搜索引擎却不能从感性上理解。但搜索引擎可以掌握词之间的关系,这就牵扯到语义分析。 可参考:https://www.sodocs.net/doc/e912058594.html,/dispbbs.asp?boardID=2&ID=74541 2.为什么要使用语义分析? 我国中文自然语言处理普遍采用西基于拉丁语系的“关键词”技术,以此来分析理解中文。然而,中文本身的特点决定它与西语之间巨大的区别,所以从汉语信息处理的需要看,当前急迫需要突破的是语义问题。 可参考: https://www.sodocs.net/doc/e912058594.html,/dicksong2008/blog/item/88fb751e9ac9501a4134 17f4.html 2.1中文与西语不同决定我们无法采用西语的架构体系来处理中文,具体区别在于: 西语词间有间隔,汉语词间无间隔。众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。 例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。 “我是一个学生”,分词的结果是:“我是一个学生”。中文分词就成了计算机处理的难题。 汉语形态不发达,句尾没有形态标记。英语动词、名词很清楚,加上词尾可以是副词;西语有时态,过去式、现在式等等非常清楚,中文则依靠词语或者依靠自己的判断来确定时态。 同音字多增加了机器识别的难度。 汉语语义灵活,由于形态不发达,所以语序无规律。在一次学术会议上,一位著名的人工智能专家说:“按…主-谓-宾?或…名-动-名?这一规则,计算机可显出…牛吃草?,也可显出…草吃牛?。从语法格式上看,…草吃牛?也不错,但这句话是说不通的。 人依靠自己的经验可以判断,机器如何来判断呢?

语义分析

词法分析就是取出一个个词,然后给词归类、给个种别码什么的。所以遇到不认识的词或符号,一般就会报错。 语法分析就是根据语法规则识别出语法单位(赋值语句、条件语句之类),并检查语法单位在语法结构上的正确性。 语义分析是对语法单位进行静态的语义审查(动态的在运行时才可确定)。分析其含义,下一步就会用另一种接近目标语言或直接用目标语言去描述这个含义。此阶段要求语句的含义和使用规则正确。 引用《统计自然语言处理基础》中的两句话来解答这个问题: ?语义可以分成两部分:研究单个词的语义(即词义)以及单个词的含义是怎么联合起来组成句子(或者更大的单位)的含义?语义研究的是:词语的含义、结构和说话的方式。 以上是书本中的定义,语义分析是一个非常宽泛的概念,任何对语言的理解都可以归纳为语义分析的范畴,笼统地谈语义是一个非常宽泛的概念。所以应该结合具体任务来看看什么是语义分析,以及语义分析的结果是什么。 从分析粒度上可以分成:词语级的语义分析,句子级的语义分析,以及篇章级别的语义分析。 词语级的语义分析

词语级别的语义分析的主要研究词语的含义,常见的任务有:词语消歧、词表示、同义词或上下位词的挖掘。 ?词语消歧:一词多义是许多语言的固有属性。以“苹果”为例,可以指水果,又可以指美国的科技公司。词语消歧的任务是判 断文中出现的词语是属于哪种意思。 ?词表示:深度学习兴起后,掀起了一波对词表示的研究浪潮。 词表示的任务是用一个k维的向量表示一个词,并且该向量中 包含着词语的意思。比较有代表性的工作是Tomas Mikolov的Word2Vec,该方法训练得到的词向量能够让语义 相关的词具有相似的词向量,并且词向量间还具有逻辑推算能 力。 ?同义词和上下位词的挖掘:语言的多样性导致了多词义一,例 如房子的近义词有房屋、房产。语言的层次性导致了词语间具 有上下位关系,像房产、存款、股票可归纳为财产。可以使用 一些机器学习的方法挖掘词语间的这种关系。 句子级的语义分析 句子级别的任务就更多了,常见的任务有:语义角色标注、蕴含分析、句子表示、语义依存分析。

实验三 自下而上语法分析及语义分析

实验三自下而上语法分析及语义分析 一、实验目的: 通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时: 4学时。 三、实验内容 根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。 对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法 采用LR分析法。 首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。 接下来给出LR分析表。 然后程序的具体实现: ●LR分析表可用二维数组(或其他)实现。 ●添加一个val栈作为语义分析实现的工具。 ●编写总控程序,实现语法分析和语义分析的过程。 注:对于整数的识别可以借助实验1。 五、文法定义 简单的表达式文法如下: E->E+T|E-T|T T->T*F|T/F|F F->(E)|i 上式中,i 为整数。 六、处理程序例 例1: 正确源程序例: 23+(45+4)* 40分析结果应为:正确的表达式。其值为:1983 例2: 错误源程序例: 5+(56+)-24 分析结果应为:错误的表达式:出错位置为)

附录:源程序 #include #include"string.h" #include using namespace std; #define R 30 #define C 20 typedef struct elem { char e[4]; }Elem; //ACTION表与GoTo表中的元素类型 Elem LR[R][C]; //存放ACTION表与GoTo表中的内容 typedef struct out { int order; //序号 int state[10]; //状态栈 char sign[30]; //符号栈 char grasen[20]; //产生式 char input[30]; //输入串 char explen[50]; //解释说明 }OutNode; //输出结果中每一行的类型 OutNode out[20]; //存放输出结果 char Sentence[20]; //存放文法的一个句子 char GramSent[10][20]; //存放文法的一组产生式

语义分析与中间代码生成程序的设计原理与实现技术__实验报告与源代码_北京交通大学

语义分析及中间代码生成程序设计原理与实现技术 XXX 1028XXX2 计科1XXX班 1.程序功能描述 完成以下描述赋值语句和算术表达式文法的语法制导生成中间代码四元式的过 程。 G[A]:A→V:=E E→E+T∣E-T∣ T→T*F∣T/F∣F F→(E)∣i V→i 说明:终结符号i 为用户定义的简单变量,即标识符的定义。 2. 设计要求 (1)给出每一产生式对应的语义动作;(2)设计中间代码四元式的结构(暂不与符号表有关)。(3)输入串应是词法分析的输出二元式序列,即某算术表达式“实验项目一”的输出结果。输出为输入串的四元式序列中间文件。(4)设计两个测试用例(尽可能完备),并给出程序执行结果四元式序列。 3.主要数据结构描述: 本程序采用的是算符优先文法,文法以及算符优先矩阵是根据第四次实验来修改的,所以主要的数据结构也跟第四次差不多,主要为文法的表示,FirstVT集和LastVT 集以及算符优先矩阵:

算符优先矩阵采用二维字符数组表示的: char mtr[9][9]; //算符优先矩阵 4.程序结构描述: 本程序一共有8功能函数: void get(); //获取文法 void print(); //打印文法 void fun(); //求FirstVT 和LastVT void matrix(); //求算符优先矩阵 void test(); //测试文法 int cmp(char a,char b); 比较两个运算符的优先级 1 0 -1 void out(char now,int avg1,int avg2); //打印四元式 int ope(char op,int a,int b); //定义四元式计算方法 5.实验代码 详见附件 6.程序测试 6.1 功能测试 程序运行显示如下功能菜单:

从视频到语义:基于知识图谱的 视频语义分析技术

Computer Science and Application 计算机科学与应用, 2019, 9(8), 1584-1590 Published Online August 2019 in Hans. https://www.sodocs.net/doc/e912058594.html,/journal/csa https://https://www.sodocs.net/doc/e912058594.html,/10.12677/csa.2019.98178 From Video to Semantic: Video Semantic Analysis Technology Based on Knowledge Graph Liqiong Deng*, Jixiang Wu, Li Zhang Air Force Communication NCO Academy, Dalian Liaoning Received: Aug. 6th, 2019; accepted: Aug. 19th, 2019; published: Aug. 26th, 2019 Abstract Video understanding has attracted much research attention especially since the recent availability of large-scale video benchmarks. In order to fill up the semantic gap between video features and understanding, this paper puts forward a video semantic analysis process based on knowledge graph, and adopts random walk to quantify semantic consistency between semantic labels. Then video semantic reasoning based-on knowledge graph is studied. The experimental results prove that knowledge graph can improve semantic understanding effectively. Finally, a constructed mul-tilevel video semantic model supports applications in video classifying, video labeling and video abstract, which has some guiding significance for information organization and knowledge man-agement of media semantic. Keywords Knowledge Graph, Video, Classify, Semantic Analysis 从视频到语义:基于知识图谱的 视频语义分析技术 邓莉琼*,吴吉祥,张丽 空军通信士官学校,辽宁大连 收稿日期:2019年8月6日;录用日期:2019年8月19日;发布日期:2019年8月26日 *通讯作者。

北邮-语义分析

编译原理 程序设计3 语义分析 By坏学长

一、 实验题目和要求 题目:语义分析程序的设计与实现。 实验内容:编写语义分析程序,实现对算术表达式的类型检查和求值。要求所分析算术表达式由如下的文法产生。 num E id F F F T F T T T T E T E E |)(||/|*||→→-+→ 实验要求:用自底向上的语法制导翻译技术实现对表达式的分析和翻译。 (1) 写出满足要求的语法制导定义或翻译方案。 (2) 编写分析程序,实现对表达式的类型进行检查和求值,并输出: ① 分析过程中所有产生式。 ② 识别出的表达式的类型。 ③ 识别出的表达式的值。 (3) 实验方法:可以选用以下两种方法之一。 ① 自己编写分析程序。 ② 利用YACC 自动生成工具。 二、 实验分析 1. 自底向上的LR 分析 ◆ 该文法的拓广文法 E' -> E E -> E + T E -> E - T E -> T T -> T * F T -> T / F T -> F F -> id F ->( E ) F ->num ◆ FIRST 和FOLLOW 集

◆该文法的LR(0)项目集规范族: ●CLOUSURE I0 E' -> .EE -> .E+TE -> .E-TE -> .TT -> .T*F T -> .T/FT -> .FF -> .idF -> .(E) F -> .num ●CLOUSURE I1 E' -> E. E -> E.+TE -> E.-T ●CLOUSURE I2 E -> T. T -> T.*FT -> T./F ●CLOUSURE I3 T -> F. ●CLOUSURE I4 F -> id. ●CLOUSURE I5 F -> num. ●CLOUSURE I6 F -> (.E) E -> .E+TE -> .E-TE -> .TT -> .T*F T -> .T/FT -> .FF -> .idF -> .(E) F -> .num ●CLOUSURE I7 E -> E+.TT -> .T*FT -> .T/FT -> .F F -> .idF -> .(E) F -> .num ●CLOUSURE I8 E -> E-.TT -> .T*FT -> .T/FT -> .F F -> .id F -> .(E) F -> .num ●CLOUSURE I9 T -> T*.FF -> .idF -> .(E) F -> .num ●CLOUSURE I10 T -> T/.FF -> .idF -> .(E) F -> .num ●CLOUSURE I11 F -> (E.) E -> E.+TE -> E.-T ●CLOUSURE I12 E -> E+T. T -> T.*FT -> T./F ●CLOUSURE I13 E -> E-T. T -> T.*FT -> T./F ●CLOUSURE I14 T -> T*F. ●CLOUSURE I15 T -> T/F. ●CLOUSURE I16

编译原理--词法分析,语法分析,语义分析(C语言)

词法分析 #include #include #include using namespace std; #define MAXN 20000 int syn,p,sum,kk,m,n,row; double dsum,pos; char index[800],len;//记录指数形式的浮点数 char r[6][10]={"function","if","then","while","do","endfunc"}; char token[MAXN],s[MAXN]; char ch; bool is_letter(char c) { return c>='a' && c<='z' || c>='A' && c<='Z'; } bool is_digtial(char c) { return c>='0' && c<='9'; } bool is_dot(char c) { return c==',' || c==';'; } void identifier()//标示符的判断 { m=0; while(ch>='a' && ch<='z' || ch>='0' && ch<='9') { token[m++]=ch; ch=s[++p]; } token[m]='\0';

ch=s[--p]; syn=10; for(n=0;n<6;n++) if(strcmp(token,r[n])==0) { syn=n+1; break; } } void digit(bool positive)//数字的判断{ len=sum=0; ch=s[p]; while(ch>='0' && ch<='9') { sum=sum*10+ch-'0'; ch=s[++p]; } if(ch=='.') { dsum=sum; ch=s[++p]; pos=0.1; while(ch>='0' && ch<='9') { dsum=dsum+(ch-'0')*pos; pos=pos*0.1; ch=s[++p]; } if(ch=='e') { index[len++]=ch; ch=s[++p]; if(ch=='-' || ch=='+') { index[len++]=ch; ch=s[++p]; } if(!(ch>='0' && ch<='9')) { syn=-1; } else

语义分析器

重庆大学课程设计报告课程设计题目:简单编译器的设计与实现 学院:计算机学院 专业班级:计算机科学与技术2班 年级:2010级 姓名:唐允恒,张楠 学号:20105208,20105333 完成时间:2013 年 6 月12 日成绩: 指导教师:张敏 重庆大学教务处制

指导教师评定成绩: 指导教师签名:年月日

指导教师评定成绩: 指导教师签名:年月日

重庆大学本科学生课程设计任务书

简单编译器设计与实现 目录 (一)目录 (1) (二)简单编译器分析与设计 (2) (1)简单编译器需求分析 (3) (2)词法分析器的设计 (3) 1.词法表设计 (3) 2.token串取法简单流程图 (3) (3)语法分析器的设计 (4) 1.算符优先文法设计 (4) 2.符号优先表 (6) (4)语义分析器的设计 (6) 1.简单四元式分析 (6) 2.简单四元式的实现 (6) (三)关键代码以及算法 (7) (1)词法分析器的关键算法 (7) (2)语法分析器的关键算法 (7) (3)四元产生式的关键算法 (8) (四)系统测试 (9) (1)用例测试 (9) (2)差错处理 (10) (3)设计自我评价 (10) (五)运行效果 (11) (六)总结 (13)

简单编译器分析与设计 简单编译器需求分析 编写目的 《编译原理》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据编译程序的一般原理和基本方法,通过具体语言的编译程序的编写,掌握编译程序的主要实现技术,并养成良好的程序设计技能。 设计背景 此项目是开发一个C++语言编辑器,完成编辑C++语言源程序,对C++语言源程序进行高亮显示、错误处理、代码重排版、显示当前文件的函数列表和跳转、成对括号、语句块标识的功能,同时描述了编译器执行每个步骤流程。 在词法分析,语法分析和语义分析等方面加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 对一个c++语言的子集编制一个编译程序,主要包括以下步骤: 词法分析 设计、编制并调试简单的C++语言的词法分析程序 语法分析 编制一个语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析。 语义分析 采用语法制导翻译原理,将语法分析所识别的语法成分变换成四元式形式的中间代码序列。

浅层语义分析

自动浅层语义分析 车万翔,刘挺,李生 (哈尔滨工业大学计算机学院信息检索实验室,哈尔滨 150001) E-mail: {car, tliu, lisheng}@https://www.sodocs.net/doc/e912058594.html, 摘要 全自动的语义分析一直是自然语言理解的主要目标之一。通过深层语义分析,可以将自然语言转化为形式语言,从而使计算机能够与人类无障碍的沟通。为达此目的,人们已经进行了多年的努力,然而目前取得的效果并不理想。浅层语义分析是对深层语义分析的一种简化,它只标注与句子中谓词有关的成份的语义角色,如施事、受事、时间和地点等。其能够对问答系统、信息抽取和机器翻译等应用产生推动作用。语义角色标注是浅层语义分析的一种实现方式,具有定义清晰,便于评价的优点。本文描述了浅层语义分析现有的语料库资源,各种分析方法,以及我们的工作等。并提出了对该任务一些难点问题的解决方案和对浅层语义分析发展的一个初步展望。 关键词:自然语言理解;浅层语义分析;语义角色标注; Shallow Semantic Parsing Wanxiang Che, Ting Liu, Sheng Li (Information Retrieval Lab, School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001) Abstract: Automatic semantic parsing is one of the main tasks for the natural language understanding. The natural language sentences can be translated into formal language by deep semantic paring. Consequently computer and human beings can communicate with each other freely. In order to achieve the dream, people have done lots of efforts for many years. However the results are not up to much. Shallow semantic parsing is a simplified form of deep semantic parsing. It only labels the constituents with semantic roles which have direct relation with the predicate in a sentence. The semantic roles include Agent, Patient, Temporal, Locative and so on. In addition, it can give great support to many NLP applications, such as information extraction, question and answering, machine translation and so on. Semantic role labeling (SRL) is one kind of shallow semantic paring. It is currently a well defined task with a substantial body of work and comparative evaluation. In the paper, we investigate the corpus for SRL, the paring methods, and our previous work. At last, some proposals to solving the difficulties in shallow semantic parsing and some future work are given. Kerwords: Natural language understanding; Shallow semantic parsing; Semantic role labeling

现代汉语语法分析报告地五种方法

北语之声论坛专业精华转贴 现代汉语语法的五种分析方法是语法学基础里很重要的一个内容,老师上课也会讲到,我在这里把最简略的内容写在下面,希望能对本科生的专业课学习有所帮助 详细阐释中心词分析法、层次分析、变换分析法、语义特征分析法和语义指向分析的具体内涵: 一. 中心词分析法: 分析要点: 1.分析的对象是单句; 2.认为句子又六大成分组成——主语、谓语(或述语)、宾语、补足语、形容词附加语(即定语)和副词性附加语(即状语和补语)。 这六种成分分为三个级别:主语、谓语(或述语)是主要成分,宾语、补足语是连 带成分,形容词附加语和副词性附加语是附加成分; 3.作为句子成分的只能是词; 4.分析时,先找出全句的中心词作为主语和谓语,让其他成分分别依附于它们; 5.分析步骤是,先分清句子的主要成分,再决定有无连带成分,最后指出附加成分。 标记: 一般用║来分隔主语部分和谓语部分,用══标注主语,用——标注谓语,用~~~~~~标注宾语,用()标注定语,用[ ]标注状语,用< >标注补语。 作用: 因其清晰明了得显示了句子的主干,可以一下子把握住一个句子的脉络,适合于中小学语文教学,对于推动汉语教学语法的发展作出了很大贡献。 还可以分化一些歧义句式。比如:我们五个人一组。 (1)我们║五个人一组。 (2)我们五个人║一组。 总结:中心词分析法可以分化一些由于某些词或词组在句子中可以做不同的句子成分而造成的歧义关系。 局限性: 1.在一个层面上分析句子,层次性不强; 2.对于一些否定句和带有修饰成分的句子,往往难以划分; 如:我们不走。≠我们走。

封建思想必须清除。≠思想清除。 3. 一些由于句子的层次关系不同而造成的歧义句子无法分析; 如:照片放大了一点儿。咬死了猎人的狗。 二. 层次分析: 含义: 在分析一个句子或句法结构时,将句法构造的层次性考虑进来,并按其构造层次逐层进行分析,在分析时,指出每一层面的直接组成成分,这种分析就叫层次分析。 朱德熙先生认为,层次分析不能简单地将其看作是一种分析方法,而是应当看做一种分析原则,是必须遵守的。(可以说说为什么) 层次分析实际包含两部分内容:一是切分,一是定性。切分,是解决一个结构的直接组成成分到底是哪些;而定性,是解决切分所得的直接组成成分之间在句法上是什么关系。 基本精神: 1.承认句子或句法结构在构造上有层次性,并在句法分析上严格按照内部的构造层次 进行分析; 2.进行分析时,要明确说出每一个构造层面的直接组成成分; 3.分析时只管直接成分之间的语法结构关系,不管间接成分之间的语法结构关系或句 法结构中实词与实词之间的语义结构关系; 优越性: 1.注意到了句子构造的层次性; 如: 他刚来我们便宜他了 ││__│││___│ │___││_____│ 他刚来我们便宜他了 __ _______ ____ ___________ ___ ___ ____ _____

语义分析实验报告

云南大学编译原理实验报告 实验题目:语义分析 学院:信息学院 专业:计算机科学与技术 学号:20091060064 姓名:刘继远

目录 一、实验目的 (1) 二、实验内容 (1) 三、源程序分析 (2) 1、程序采用的BNF (2) 2、根据语义要求得到对应的翻译模式 (3) 3、实现原理 (4) 4、文法的属性分析 (4) 5、过程设计 (5) 6、子程序说明 (6) 四、设计的基本思想(包括修改之后的属性文法、属性类型分析、翻译模式) (6) 1、增加除法运算 (6) 2、禁止同名重复声明 (8) 五、结果及分析 (8)

一、实验目的 进一步理解递归下降分析原理和实现方法,理解语义分析的基本机制,掌握语义子程序的构造方法。 二、实验内容 将带变量声明的表达式翻译为四元式序列,其中包括以下要求: ●非终结符号D实现定义两种类型int, real变量的声明; ●非终结符号S实现变量之间的*,+,: =(赋值运算) ●两个关键字int 和real ●变量之间的*,+,: =(赋值) 运算只能使用声明过的变量,所以要检查 使用的变量是否声明过。 ●对每个*,+,: =(赋值) 运算生成一条四元式如(*,A,B,T1),其 中T1是临时变量 ●*优先级别高于+,*满足左结合规则

三、源程序分析 这是一个简单的包含词法、语法、语义分析的程序:语义分析.h和语义分析.cpp。实现的基本原理是自顶向下分析,单遍扫描,以语法分析为核心,调用词法分析,并实现语义分析。 1、程序采用的BNF P→ DS. D→B; D D→ε B→int L | real L L→id | L,id S→ V := E H H→;S | ε E→E+T | T T→T*F|F F→( E ) F→id V→id 消除左递归之后的等价文法 start→ DS. D→B; D D→ε B→int L | real L L→id A A→ ,idA A→ε

语义分析

三、词法、语法、语义分析结合 一、实验目的与要求 在实现词法、语法分析程序的基础上,编写相应的语义子程序,进行语义处理,加深对语法制导翻译原理的理解,进一步掌握将语法分析所识别的语法范畴变换为某种中间代码(四元式)的语义分析方法,并完成相关语义分析器的代码开发。 二、实验内容 语法制导翻译模式是在语法分析的基础上,增加语义操作来实现的。对于给定文法中的每一产生式,编写相应的语义子程序。在语法分析过程中,每当用一个产生式进行推导或归约时,语法分析程序除执行相应的语法分析动作之外,还要调用相应的语义子程序,以便完成生成中间代码、查填有关表格、检查并报告源程序中的语义错误等工作。每个语义子程序需指明相应产生式中各个符号的具体含义,并规定使用该产生式进行分析时所应采取的语义动作。这样,语法制导翻译程序在对源程序从左到右进行的一遍扫描中,既完成语法分析任务,又完成语义分析和中间代码生成方面的工作。 输入:包含测试用例,如由无符号数和+、?、*、/、(、)构成的算术表达式的源程序文件。 输出:将源程序转换为中间代码形式表示,并将中间代码序列输出到文件中。若源程序中有错误,应指出错误信息。 三、实验设计 语法制导翻译模式实际上是对前后文无关文法的一种扩展。一般而言,首先需要根据进行的语义工作,完成对文法的必要拆分和语义动作的编写,从而为每个产生式都配备相应的语义子程序,以便在进行语法分析的同时进行语义解释。要求从编译器的整体设计出发,重点通过对实验二中语法分析程序的扩展,完成一个编译器前端程序的编写、调试和测试工作,形成一个将源程序翻译为中间代码序列的编译系统。 对文法G3[<算术表达式>]中的产生式添加语义处理子程序,完成无符号数的四则运算的计值处理,将输入的四则运算转换为四元式形式的中间代码。本实验只进行了算术表达式四元式的翻译。 四、源代码 1、在.h文件中添加了 //语义分析部分 #define PMAX 5//define 后面不加括号,定义产生式符号属性字符串的长度 int NXQ=0; /*全局变量NXQ用于指示所要产生的下一个四元式的编号*/ int NXTemp=1;//整型变量NXTemp指示临时变量的编号 int SentenceCount=1;//存放文件中句子的个数 struct QUATERNION /*四元式表的结构*/ { char op[PMAX]; /*操作符*/ char arg1[PMAX]; /*第一个操作数*/ char arg2[PMAX]; /*第二个操作数*/ char result[PMAX]; /*运算结果*/ }pQuad[256]; /*存放四元式的数组*/ char EBracket_Place[PMAX];//(E)的语义属性

自然语言理解语义分析

引用《统计自然语言处理基础》中的两句话来解答这个问题: ?语义可以分成两部分:研究单个词的语义(即词义)以及单个词的含义是怎么联合起来组成句子(或者更大的单位)的含义 ?语义研究的是:词语的含义、结构和说话的方式。 以上是书本中的定义,语义分析是一个非常宽泛的概念,任何对语言的理解都可以归纳为语义分析的范畴,笼统地谈语义是一个非常宽泛的概念。所以应该结合具体任务来看看什么是语义分析,以及语义分析的结果是什么。 从分析粒度上可以分成:词语级的语义分析,句子级的语义分析,以及篇章级别的语义分析。词语级的语义分析 词语级别的语义分析的主要研究词语的含义,常见的任务有:词语消歧、词表示、同义词或上下位词的挖掘。 ?词语消歧:一词多义是许多语言的固有属性。以“苹果”为例,可以指水果,又可以指美国的科技公司。词语消歧的任务是判断文中出现的词语是属于哪种意思。 ?词表示:深度学习兴起后,掀起了一波对词表示的研究浪潮。词表示的任务是用一个k维的向量表示一个词,并且该向量中包含着词语的意思。比较有代表性的工作是Tomas Mikolov的Word2Vec,该方法训练得到的词向量能够让语义相关的词具有相似的词向量,并且词向量间还具有逻辑推算能力。

?同义词和上下位词的挖掘:语言的多样性导致了多词义一,例如房子的近义词有房屋、房产。语言的层次性导致了词语间具有上下位关系,像房产、存款、股票可归纳为财产。可以使用一些机器学习的方法挖掘词语间的这种关系。 句子级的语义分析 句子级别的任务就更多了,常见的任务有:语义角色标注、蕴含分析、句子表示、语义依存分析。 ?语义角色标注(Semantic Role Labeling, SRL) 是一种浅层的语义分析技术,标注句子中某些短语为给定谓词的论元(语义角色) ,如施事、受事、时间和地点等。其能够对问答系统、信息抽取和机器翻译等应用产生推动作用。 ?文本蕴涵(Textual entailment)是指两个文本片段有指向关系。当认为一个文本片段真实时,可以推断出另一个文本片断的真实性。完成这样。完成这样的任务,也需要从语义角度出发进行解决。 ?句子表示:同词表示类似,句表示研究的是用一个k维的向量表示一句话的含义。 近几年,常用句向量在文本检索、问答系统中计算文档间的相似度。 ?语义依存分析(Semantic Dependency Parsing, SDP),分析句子各个语言单位之间的语义关联,并将语义关联以依存结构呈现。语义依存分析目标是跨越句子表层句法结构的束缚,直接获取深层的语义信息。比较有代表性的工作是哈工大刘挺老师实验室的LTP。 篇章级的语义分析

中文语义依存分析评测大纲

中文语义依存分析评测大纲 一、评测对象 本次评测的对象是中文句子的词语之间的语义及句法依存关系分析技术。 二、评测内容 本次评测主要评测依存关系分析系统对中文句子进行依存分析的准确性。 三、评测方法 1.评测方式 本次评测为离线评测,参评单位自行处理数据,生成相应结果后提交。训练语料将提前1个月公布。 2.评测步骤 1)评测单位预先给出若干训练数据(已标注依存分析结果); 2)评测单位给出测试数据(未标注依存分析结果); 3)参评单位运行被测系统,得出测试结果; 4)参评单位提交测试结果; 5)评测单位标注答案,运行自动评测程序,统计评测结果。 3.评测标准 1)量化指标 本次评测采用三个指标对被测试系统进行评测,分别为: i.依存标注准确率(Labeled Attachment Score, LAS) ii.依存准确率(Unlabeled Attachment Score, UAS) iii.标注准确率(Labeled Accuracy, LA) 令整个测试预料包含的词数为N,任意词语的依存用三元组进行表示,其中word为词本身,word以关系relation依存于headword。在被测试系统的输出中,令所有headword正确的词语的数目为N a,所有relation正确的词语的数目为N l, 所有headword和relation都正确的词为N al,那么,测试指标的计算方法如下: LAS=N al N UAS=N a N LA=N l N 三个指标的优先级分别为LAS>UAS>LA。 4.数据格式 测试数据采用CONLL1格式,数据文件采用UTF-8编码。测试数据总共提供6列值,分别为:词语ID、词语、词性(粗粒度)、词性(细粒度)、被依存词ID和依存关系,即CONLL 格式中的第1、2、4、5、7和8列。其他列留空(用“_”填充)。列与列之间用“\t”分隔,行与行之间用“\n”分隔,句子与句子之间用空行分隔。被测试系统可以自行对其他列进行补充,但不允许修改分词结果(清华大学SDN语料的词性为自动标注结果,参评者可对词性进行重新标注)。 输出数据同样采用CONLL格式,其中第1、2列应当与测试数据严格一致,分析结果填充到第7,8列。其他列可留空(用“_”填充),也可以保留自行补充的数据。 1http://ilk.uvt.nl/conll/#dataformat

编译原理实验三-自下而上语法分析及语义分析.docx

上海电力学院 编译原理 课程实验报告 实验名称:实验三自下而上语法分析及语义分析 院系:计算机科学和技术学院 专业年级: 学生姓名:学号: 指导老师: 实验日期: 实验三自上而下的语法分析 一、实验目的: 通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时: 4学时。 三、实验内容

根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。 对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法 采用LR分析法。 首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。 接下来给出LR分析表。 然后程序的具体实现: ● LR分析表可用二维数组(或其他)实现。 ●添加一个val栈作为语义分析实现的工具。 ●编写总控程序,实现语法分析和语义分析的过程。 注:对于整数的识别可以借助实验1。 五、文法定义 简单的表达式文法如下: (1)E->E+T (2)E->E-T (3)E->T

(4)T->T*F (5)T->T/F (6)T->F (7)F->(E) (8)F->i 状态ACTION(动作)GOTO(转换) i + - * / ( ) # E T F 0 S5 S4 1 2 3 1 S6 S1 2 acc 2 R 3 R3 S7 S13 R3 R3 3 R6 R6 R6 R6 R6 R6 4 S 5 S4 8 2 3 5 R8 R8 R8 R8 R8 R8 6 S5 S4 9 3 7 S5 S4 10 8 S6 R12 S11 9 R1 R1 S7 S13 R1 R1 10 R4 R4 R4 R4 R4 R4 11 R7 R7 R7 R7 R7 R7 12 S5 S4 14 3 13 S5 S4 15 14 R2 R2 S7 S13 R2 R2 15 R5 R5 R5 R5 R5 R5 五、处理程序例和处理结果例 示例1:20133191*(20133191+3191)+ 3191#

编译原理词法语法语义分析器设计

编译技术课程设计 班级计算机0802 学号3080602049 姓名周勇 指导老师朱玉全 二零一一年七月

编译技术课程设计 一、目的 <<编译技术>>是理论与实践并重的课程,而其实验课要综合运用一、二年级所学的多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和设计的能力,进一步培养学生的独立编程能力。 二、任务及要求 基本要求: 1.词法分析器产生下述小语言的单词序列 这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表: 对于这个小语言,有几点重要的限制: 首先,所有的关键字(如IF﹑WHILE等)都是“保留字”。所谓的保留字的意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对禁止的: IF(5)=x 其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标示符来处理。也就是说,对于关键字不专设对应的转换图。但把它们(及其种别编码)预先安排在一张表格中(此表叫作保留字表)。当转换图识别出一个标识符时,就去查对这张表,确定它是否为一个关键字。 再次,如果关键字、标识符和常数之间没有确定的运算符或界符作间隔,则必须至少用一个空白符作间隔(此时,空白符不再是完全没有意义的了)。例如,一个条件语句应写为

IF i>0 i= 1; 而绝对不要写成 IFi>0 i=1; 因为对于后者,我们的分析器将无条件地将IFI看成一个标识符。 这个小语言的单词符号的状态转换图,如下图: 2.语法分析器能识别由加+ 减- 乘* 除/ 乘方^ 括号()操作数所组成的算术表达式,其文法如下: E→E+T|E-T|T T→T*F|T/F|F F→P^F|P p→(E)|i 使用的算法可以是:预测分析法;递归下降分析法;算符优先分析法;LR分析法等。 3.中间代码生成器产生上述算术表达式的中间代码(四元式序列) 较高要求:

语义分析的一些方法

语义分析的一些方法 语义分析的一些方法(上篇) 5040 语义分析,本文指运用各种机器学习方法,挖掘与学习文本、图片等的深层次概念。wikipedia上的解释:In machine learning, semantic analysis of a corpus is the task of building structures that approximate concepts from a large set of documents(or images)。 工作这几年,陆陆续续实践过一些项目,有搜索广告,社交广告,微博广告,品牌广告,内容广告等。要使我们广告平台效益最大化,首先需要理解用户,Context(将展示广告的上下文)和广告,才能将最合适的广告展示给用户。而这其中,就离不开对用户,对上下文,对广告的语义分析,由此催生了一些子项目,例如文本语义分析,图片语义理解,语义索引,短串语义关联,用户广告语义匹配等。 接下来我将写一写我所认识的语义分析的一些方法,虽说我们在做的时候,效果导向居多,方法理论理解也许并不深入,不过权当个人知识点总结,有任何不当之处请指正,谢谢。 本文主要由以下四部分组成:文本基本处理,文本语义分析,图片语义分析,语义分析小结。先讲述文本处理的基本方法,这构成了语义分析的基础。接着分文本和图片两节讲述各自语义分析的一些方法,值得注意的是,虽说分为两节,但文本和图片在语义分析方法上有很多共通与关联。最后我们简单介绍下语义分析在广点通“用户广告匹配”上的应用,并展望一下未来的语义分析方法。

1 文本基本处理 在讲文本语义分析之前,我们先说下文本基本处理,因为它构成了语义分析的基础。而文本处理有很多方面,考虑到本文主题,这里只介绍中文分词以及Term Weighting。 1.1 中文分词 拿到一段文本后,通常情况下,首先要做分词。分词的方法一般有如下几种: ?基于字符串匹配的分词方法。此方法按照不同的扫描方式,逐个查找词库进行分词。根据扫描方式可细分为:正向最大匹配,反向最大匹配, 双向最大匹配,最小切分(即最短路径);总之就是各种不同的启发规则。 ?全切分方法。它首先切分出与词库匹配的所有可能的词,再运用统计语言模型决定最优的切分结果。它的优点在于可以解决分词中的歧义问 题。下图是一个示例,对于文本串“南京市长江大桥”,首先进行词条检索(一般用Trie存储),找到匹配的所有词条(南京,市,长江,大桥,南京市,长江大桥,市长,江大桥,江大,桥),以词网格(word lattices)形式表示,接着做路径搜索,基于统计语言模型(例如n-gram)[18]找到最优路径,最后可能还需要命名实体识别。下图中“南京市长江大桥” 的语言模型得分,即P(南京市,长江,大桥)最高,则为最优切分。 图1. “南京市长江大桥”语言模型得分

相关主题