课程2自然语言处理
CS-265/CSC325 人工智力 自然语言处理
发布时间:2024年3月22日
到期时间:2024年4月29日星期四上午11点。这是一个艰难的最后期限,与其他提交文件有关截止日期。
在开始编程之前,阅读并思考整个课程。复习NLP的讲座和实验室。把它看作是设计一种语言机制,你可以对其进行实验和开发。重点是关于如何在语法和词典的不同点上使用特征来控制良好的形式。完全准确地按照说明进行操作。答错或漏答时会去掉分数。在课业中解决以下问题
1.编写一个DCG,用于解析输入句子并输出解析结果。2.DCG必须解析具有以下特征的句子。特征a、b、c、d和j是与实验室有关。其他的e、g、h、k和l是与实验室其他部分相互作用的插件语法,并在下面进一步解释。
a.及物动词和不及物动词
b.常用名词
c.行列式(例如“a”、“the”和“two”)
d.主宾单数/复数代词(如“he”、“him”、“I”、“we”)e.语法第五人称代词(如“I”、“you”、“she”)f.单数/复数名词(如椅子)
g.形容词和形容词短语
h.介词和介词短语
i.人称、数字和动物的主谓一致性
j.决定因素通用名词数一致性
k.主词和动词之间的动画一致性
l.被动句和ac5ve句
3.DCG应将语法和词汇分开。词典必须包含在代码中,并且包括下面词典中的所有单词和词形,或者您应该添加到
词典。
4.解析器应该仔细研究和模拟样本输出(如下)。一定是强调输出是输入句子的短语结构;这是不够的
只是为了识别一个句子是否根据语法形成良好。类别(例如。,nbar,jp,adj,n,以及解析结构,例如,nbar(jp(adj(高大),jp(dj(年轻),n(男性))),应显示在输出中。未命中类别和解析结构的输出将是
标记下来。虽然可能有不同的语法编写方法,但输入和输出必须精确且固定,因为结果将自动检查5。如果输出不
如果与预期输出匹配,则可以在该输出上进行标记。
Demonstra@on的工作
为了证明您的代码按预期工作,您的代码应该正确地为
测试句子列表中的语法句子(如下),不符合语法的句子不及格。在里面在下面的测试句子列表中,例如,一个语法不正确的句子旁边用*表示,“男人们看到了苹果”是不合乎语法的。我们不关心大写字母或标点符号。对于测试句子列表中的每个句子,查询您的语法分析器;如果句子不符合语法5,则输出应为假/失败;如果句子是grammaacal,那么输出应该是正确的解析。一程序中的excep5on表示存在问题,代 写CS-265/CSC325 人工智力 自然语言处理并且没有给出任何标记。一般来说,如果出现问题或问题,请在第5页的讨论中报告。你的语法至少应该分析并提供测试中每个句子的短语结构句子(见下文)。同样,为了进行评估,你的语法应该有一些看不见的句子解析并生成短语结构,或者在给定指令和词典的情况下解析失败。你要对词典进行一些扩展——全程仔细阅读说明书
以充分了解需要做什么。
屈服
要提交你的课业,它应该和你的语法是一个文件。文件名应为Prolog文件形式为:
YOUR-STUDENT-NUMBER_AI_NLP_2024.pl文件将在TurnItIn(将提供的链接)上提交。语法将自动运行和单元测试;也就是说,我们将对所有可见的和不可见的测试句进行语法测试根据说明和词典,语法应该解析或无法解析的句子。这
也意味着如果你的文件中有任何不是Prolog代码的内容(评论、讨论、,示例等),则它应该显示为注释掉。
讨论
如果你倾向于参与进一步的讨论、问题、研究其他例子,做出观察,添加进一步的扩展,甚至其他语言,欢迎您在发送的电子邮件文档中共享我(亚当怀纳)。本身没有附加标记。您将从
讲师。确保你在文件上注明了你的学号和姓名。
评分方案
这门课的总分是15分。这些标记中的60%用于正确输出已解析的句子(看得见的和看不见的数据),其中40%的标记用于形成良好的语法。不准确的输出(全部或部分)按比例扣除。格式良好的语法使用DCG(而不是差异列表),使用带附件的完整词典(见下文),使用指示的grammascal类别和短语单位,并尽可能减少冗余或复杂性(见下文
进一步注释)。
测试句子
*意思是这些句子的语法应该不及格。有些句子可能看起来像语法给出以下进一步讨论的其他解释。接受grammacality的判断在这里给出,尽管它们是开放的讨论。下面列出了一些句子;再往下,那里是附加样本输入/输出。
1.那个女人看到了苹果
2.一个女人认识他
3.*两个女人雇了一个男人
4.两个女人雇了一个男人
5.她了解她
6.*她认识那个男人
7.*我们看看苹果
8.我们看到了苹果
9.我认识一个矮个子
10.*他雇佣他们
11.两个苹果掉下来
12.苹果掉了
13.苹果掉了
14.我睡觉
15.你睡觉了
16.她睡觉了
17.*他睡觉
18.他们睡觉
19.男人睡觉
20.*高个子女人看到红色
21.年轻的高个子男人认识年老的矮个子女人
22.*高个子的男人知道矮个子的女人
23.一个坐在椅子上的男人看到一个女人在房间里
24.*一个坐在椅子上的男人看到一个女人在房间里
25.房间里坐在椅子上的高个子年轻女子看到了下面的红苹果椅子
26.那个男人睡着了
27.*这个房间可以睡觉
28.苹果看见了椅子
29.房间里的人都认识那个人
30.苹果掉了
31.男子摔倒
32.那个男人打碎了椅子
33.椅子坏了
34.椅子被那个人弄坏了
35.椅子被人打破了
36.*椅子被苹果打碎了
37.这个房间是那个男人租的
38.*椅子被那个人摔坏了
39.一个人被狗缠住了
40.*一个男人被狗缠住了
41.*椅子被那个人摔了下来
42.*一个坐在椅子上的男人看到一个女人在她身边
43.*一个坐在椅子上的男人看到一个女人在她身边
44.*一个坐在椅子上的男人看到女人在旁边
45.一个坐在椅子上的男人看到一个坐着椅子的女人
除了这45个句子之外,下面还有15个样本输入和解析,你应该使用它们来发展和测试你的语法。
这60个句子是你可以用来发展和测试语法的数据集。然而更多地出现在看不见的tes5ng数据集中,使用相同的词典和相同的参数语法如下所述。如果你的语法解析并生成seen的短语结构例如,假设你设计好了语法,它也应该解析和生成短语
看不见的句子的结构。
样本输入和分析建模
下面,在不同的sec5ons中,您将找到示例模型输入和输出。它们突出显示了类别以及语法应该识别并输出其结构的结构。中的输出
语法应该仔细学习和模仿例子。类别(下面),例如nbar,jp、adj、n、byPass和解析结构(如下),例如nbar(jp(adj(高大)、jp(dj(年轻)、n(男性)))应该在输出中正确显示。将标记未命中类别和解析结构的输出向下这些例子还说明了可以调用的谓词。你使用这个表格很重要你的语法以这些形式产生这些输出。显然,的任务
你的语法是接受输入并提供输出,这样你就知道了预期的目标。评论和提示
课程中语法的重点是如何使用特征来“引导”的良好形式解析。
你的语法应该只为每个输入句子提供一个解析。检查它是否有意义规格5开。如果有多个解析,那么语法中就有需要修改的地方。在长解析中,您可能会看到。。。。您的解析。这意味着解析非常长,Prolog截断它。如果你想看到完整的解析,让讲师知道,谓词可以在上循环帆布
解析的长度应该与输入句子的长度成正比。如果你有很长解析一个相对较短的句子,那么你的语法就有问题了。
你所写的语法应该识别并输出相关句子的解析(
可见的数据和其他不可见的数据与词典、样本解析和语法解释有关)并在他人身上失败。如果您生成更多的句子或提供更多的解析示例,您将很快就会发现,这种语法可以识别出许多奇怪或不符合语法的句子。你会还可以看到,一些句子可以是语法的,并对其中的一些给出不同的解释词性,例如,副短语在这一语法中只出现在被动语态中,但在的意义上``旁边的“”将是gramma.cal。从这个意义上说,语法是一种理论,你可以发展和相对于数据递增地进行评估。为自然片段编写大规模语法语言必须考虑一系列的前置词,例如前置短语的排序、替换词解释、语义限制、语义表示、语用等,而我们不是
在本课程中解决问题。在计算语言学的世界中成为“硬核”5解析和seman5c的意思是面对许多困难、复杂和非常有趣的自然问题语言
在开发过程中,您还可以在SWISH中可视化解析树(可能不在您的本地SWIProlog installation5on中)。此谓词将在Canvas上传阅。一般来说,你的语法文件应该只包括语法和词典,而不包括更多的Prologdirec5ves(那些以:开头的行)或谓词不属于语法和词典的一部分,例如您可以在SWISH中使用解析树。
上的注释Gramma@cal Construc@ons这里的笔记扩展了实验室6中的主题,所以把它们放在一起。名词(常用名词和代词)具有特征。这在代词形式上是明确的(例如他/他、我/我们),其中具有数字(单数/复数)和格(主格/宾格)等特征。这个语法角色(主语/宾语)与名词的格有关,其中格是主格和与主体和客体(广义)相对应并对齐;也就是说,名词的格形式表示名词相对于动词的作用。
短语和结构
对于类似的短语类别,有一个以上的规则是合理的,其中有一个重要的有理由为他们提供担保。例如,我们有及物动词(必须有宾语)和不及物动词动词(不能有宾语);您可能有两个不同的VP规则来表示这一点。预科5短语是名词短语中的op5onal;byPass前置短语是动词内部的op5短语。对于前者,您可能有两个不同的NP,对于撕裂器,您可能会有两个不相同的VP。我们没有假设二元分支是必要的,所以一个短语可能有两个以上的cons5tuent(parts)在里面。
s(树,[人,睡觉],[])。
s(np(det(the),nbar(n(man)),vp(v(sleep)))s(树,[那个,女人,看见了,那个,苹果],[])。s(np(det(the),nbar(n(woman)),vp(v(sees),nps(树,[女人,看见的,苹果,在,房间里],[])。s(np(det(the),nbar(n(women)酒吧(n(房间))))
代词
代词(例如他/他、我/我们)具有数字(单数/复数)和语法角色等特征(主题/对象)。语法的作用与名词的格有关,也就是说,名词的形式指出名词相对于动词的作用。在英语中,有三种情况——Nomina5ve,Accusa5ve和Geni5ve。最后一个我们忽略了。代词在英语中最清楚地表明了这一点——“she”是一个主格形式的代词,而“her”是宾格形式的代名词
主词位置,必须以主格形式出现;当代词在宾语posi5on时,它必须以宾格形式出现。此外,代词还具有语法人称等特征,例如,第一人称“i”,第二人称“you”,第三人称“she”。Gramma5cal人表示更接近或这句话的说话者和其他人之间更遥远的关系:“我看到了苹果”代表最私人的陈述(第一人称)``你看,苹果“”在扬声器和立即在场的人员;“他看到了苹果”是最遥远的,因为它可以与不立即在场或不知何故不那么“相关”的人。
该词典显示了代词的数量、格、语法人称和动物性(无论是是一种认知)。
s(树,[她,知道,她],[])。
树=s(np(pro(she)),vp(v(knows),np(pro-her))。s(树,[她,知道,她],[])。
false。
协定
代词和名词短语有几个特点。名词短语(以及第5小节中的代词)必须在几个方面与动词一致,即名词的数量、格、人称和动物性特征短语必须与动词的这些特征相兼容——这就是机制的结构“锁定”在一起。虽然句子在句子中有主语和宾语,但这些都反映在论点的顺序,而不是一些附加的特征。
带有形容词和介词短语的NP的结构
就我们的目的而言,形容词“tall”等形容词描述了一个普通名词(如man)的性质adjec5ve在名词前面。例如:“高个子男人看到女人”是grammacal高个子的男人看到女人“”不懂语法。你可以有任意数量的形容词,例如:“高个子”老人看见了女人
高高的老人看到了这个女人,即使有点奇怪,我们也会接受grammacal。
就我们的目的而言,前置短语不带限制地修饰名词,它由介词和一个名词短语。序言提供了有关的相关位置的信息名词,即被修饰的名词和前置短语中的名词。前置5
短语跟在它所修饰的名词后面:“房间里的男人看到一个女人坐在椅子上”。我们看到了作为“男人”和“房间”之间的关系。你可以有任意数量的前置短语,例如例如:“房间里坐在椅子上的女人看到了男人”。我们可以有一个修饰动词的前置短语,如“女人睡在房间里”,但不要这样课业。
当形容词或前置短语修饰名词短语时,它可以与名词短语一起出现在主题或对象所在的位置。
形容词或前置短语是op5onal的,因为在句子中没有它们会导致一个五五格的句子。然而,这就失去了意义
作为名词短语中形容词和前置短语语法的提示,请参阅短语下面的示例句子树。它们表示类别和短语的语法结构
名词短语中形容词和前置短语的结构;虽然有些复杂
显示了各种结构。虽然jp和nbar的grammacal结构不熟悉,但我们可以照原样对待他们。在语法中使用这些类别和短语结构。给定此类输入(以及类似),您的解析器应该生成相同类型的输出:
s(树,[the,woman,on,two,chairs,in,a,room,see,two(高,年轻,男人),[])。树=s(np(det(the),nbar(n(women)),pp(prep(on),np(det(two),nbbar(n(chairs)),np(det(a),nbar(n(room),
n(男性))))
s(树,[the,woman,in,a,room,sees,two,young,men],[])。s(np(det(the),nbar(n(woman)),pp(prep(in),npar(jp(adj(年轻),n(男性))))
尽管如此,“普通”的前置短语和标准短语之间还是有区别的出现在被动语态中的前置短语。为了我们的目的,我们将区别对待它们。看见在下面
被动的
被动句和ac5ve句密切相关:
狗咬了那个女人。(ac5ve)
s(树,[the,dog,bites,the,women],[])。s(np(det(the),nbar(n(dog)那个女人被狗咬了。消极的
s(树,[the,woman,is,bicen,by,the,dog],[])。s(np(det(the),nbar(n(women))),vp(aux(is),v(bicen),byPrepP(byPrep(by),np))))
被动语态是一个更广泛、更多样的语法结构家族的一部分,称为素质变化。在素质变位中,动词的论据出现在变位中
但在很大程度上具有相同的含义。上面的被动句和ac5ve句意思相同,但是以不同的方式和一些不同的修辞用法给出。素质的其他例子:直接间接对象:一个女人把一本书送给一个男人;女人给男人一本书因果关系:那个女人把椅子摔坏了;椅子坏了
我们只考虑被动的。虽然过去时最好,但我们还是用现在时(并不是真正的狼牙棒)。英语被动构念有几个特点:
名词短语的位置和大小写发生变化:中的宾语(accusa5ve)NP是什么ac5ve句是被动语态中的主格(主格);主题是什么(主格和ac5ve中的“animate door”)NP是一个典型的前置短语,代表ac5on的“动画实干家”。
她雇用了他。
s(树,[她,雇佣,他],[])。
s(np(专业(她)),vp(v(雇佣),np(专业)))他受雇于她。
s(树,[他,是,受雇于,被,她],[])。
s(np(pro(he)),vp(aux(is),v(已雇佣),byPrepP(byPrep(by),np(pro(her))))*她雇用了他。
s(树,[她,咬,他],[])。
false。
*他受雇于她。
s(树,[他,是,受雇于,她],[])。
false
“辅助”或“帮助者”动词(本词典中“待”的一种形式)在被动语态中引入。如果没有辅助,它可能会被解读为名义上的,这是另一种狼牙棒。*那个女人骑在狗旁边。
s(树,[the,woman,bicen,by,the,dog],[])。false
虽然动词的主语在ac5ve中必须是animate,但它不必是被动语态。s(树,[the,woman,breaks,the,chair],[])。s(np(det(the),nbar(n(women)),vp(v(breaks),nps(树,[the,apple,breaks,the,chair],[])。false
s(树,[the,chair,is,breaked,by,the,women],[])。s(np(det(the),nbar(n(chair))),vp(aux(is),v(breaked),byPrepP(byPrep(by),np(n(女人))))
ac5ve中的动词在被动语态中以“过去分词”的形式出现。狗咬了那个女人。
那个女人被狗咬了。
s(树,[the,woman,is,bites,by,the,dog],[])。false
第5段前置短语是op5 onal短语,没有失去意义。这与去掉“普通”前置短语。
那个女人被狗咬了。
s(树,[the,woman,is,bicen],[])。s(np(det(the),nbar(n(women)),vp(aux(is),v(bicen))注意短语结构。助词、被动语态和助词前置语态
短语都出现在VP中短语结构的同一“级别”上。这是在与修饰名词短语的普通前置短语形成对比。
那个女人被狗咬了。
s(树,[the,woman,in,the,room,is,bicen,by,the,dog,in,the,room],[])。s(np(det(the),nbar(n(women)),pp(prep(in),npen),byPrepP(byPrep(by),np(det(the),nbar(n(dog)),pp(prep(in),np))))))
词库
词典应包括以下所有出现的单词,其中每个单词的组成部分条目如给定。这不是代码所需的形式,但却是一个有用的提示。语法必须处理词典中的特征。
%%%%%%%%%%%%词汇表
%词典应包括以下所有出现的单词,其中每个单词的组成部分%条目如给定。为了清晰起见,词典是按照代码所需的形式提供的。%语法必须处理词典中的特征。
%请注意,您的语法可能需要一些词汇形式,但在lis5ng中却缺少这些形式在下面
%%%代词%%%
%对于代词,信息5按以下顺序出现:单词、语法类别(代词)、,%数字(单数/复数)、格莱美人(第一、第二或第三)和格莱美角色(主题或对象
lex(i,pro,单数,1,nom,ani)。
lex(您,pro,单数,2,nom,ani)。
lex(he,pro,单数,3,nom,ani)。lex(她,亲,单数,3,化名,ani)。
lex(it,pro,单数,3,nom,ani)。lex(我们,pro,复数,1,nom,ani)。lex(你,pro,复数,2,nom,ani)。
lex(它们,pro,复数,3,nom,ani)。lex(me,pro,单数,1,acc,ani)。lex(您,pro,单数,2,acc,ani)。
lex(him,pro,单数,3,acc,ani)。lex(her,pro,单数,3,acc,ani)。lex(it,pro,单数,3,acc,ani)。lex(us,pro,复数,1,acc,ani)。lex(你,pro,复数,2,acc,ani)。
lex(they,pro,复数,3,acc,ani)。%%%常用名词%%%
%对于普通名词,信息的出现顺序如下:单词、语法类别(名词),数字
lex(man,n,单数,_,_,ani)。
lex(女人,n,单数,_,_,ani)。
lex(dog,n,单数,_,_,ani)。
lex(apple,n,单数,_,_,nani)。lex(椅子,n,单数,_,_,nani)。
lex(房间,n,单数,_,_,nani)。
%Thema5c规则我们不会使用。
%lex(X,n,单数,_,_,agent):-lex(X,n,单数,_,_,ani)。%lex(X,n,单数,_,_,experiencer):-lex(X,n,奇异,_,,_,ani)。lex(men,n,复数,_,_,ani)。
lex(女性,n,复数,_,_,ani)。
lex(dogs,n,单数,_,_,ani)。
lex(apples,n,复数,_,_,nani)。lex(椅子,n,复数,_,_,nani)。
lex(房间,n,复数,_,_,nani)。
%%%动词%%%
%对于动词,信息5按以下顺序出现:单词、语法类别(动词)、数字(单数/复数),
%克5卡尔人(第一、第二、第三)
%%%及物动词%%%
%请注意,在这个例子中,我们并没有为每个及物动词使用Lexicon过去分词:%知道,看到,雇佣
lex(know,tv,单数,1,ani)。
lex(know,tv,单数,2,ani)。
lex(knows,tv,单数,3,ani)。
lex(know,tv,复数,_,ani)。
lex(见,tv,单数,1,ani)。
lex(见,tv,单数,2,ani)。
lex(sees,tv,单数,3,ani)。
lex(见,tv,复数,_,ani)。
lex(租用,电视,单数,1,ani)。
lex(租用,电视,单数,2,ani)。
lex(招聘,电视,单数,3,ani)。
lex(hire,tv,复数,_,ani)。
lex(break,tv,单数,1,ani)。
lex(break,tv,单数,2,ani)。
lex(breaks,tv,单数,3,ani)。
lex(break,tv,复数,_,ani)。
lex(bite,tv,单数,1,ani)。
lex(bite,tv,单数,2,ani)。
lex(bites,tv,单数,3,ani)。
lex(bite,tv,复数,_,ani)。
%%%过去分词%%%
%这些动词形式用于被动语态。
%只有电视动词可以被动化。我们并没有在这个列表中提供所有内容,%但作为课程的一部分,你应该把其他电视动词的pastPart添加到词典中%以便识别上面的一些句子和其他句子。
%请注意,被动语态中的动词不需要有生气的主语,尽管这是的必需条件%晶体管5形成。
%
%你需要在词典中添加所有以上及物动词的过去分词形式。lex(breaked,pastPart,单数,1,_)。lex(breaked,pastPart,单数,2,_)。lex(breaked,pastPart,单数,3,_)。lex(breaked,pastPart,复数,_,_)。lex(bicen,pastPart,单数,1,_)。lex(bicen,pastPart,单数,2,_)。lex(bicen,pastPart,单数,3,_)。lex(bicen,pastPart,复数,_,_)。%%%内部动词%%%
%这些不能成为被动。
lex(fall,iv,单数,1,_)。
lex(fall,iv,单数,2,_)。
lex(falls,iv,单数,3,_)。
lex(fall,iv,复数,_,_)。
lex(sleep,iv,单数,1,ani)。
lex(sleep,iv,单数,2,ani)。
lex(睡眠,iv,单数,3,ani)。
lex(sleep,iv,复数,_,ani)。
%%%被动%%%的助动词(aux)
%在这个版本的词典中,辅助动词的活泼性是不必要的,%不过,如果语法是以不同的方式完成的,那可能是。
lex(am,aux,单数,1)。
lex(are,aux,单数,2)。
lex(is,aux,单数,3)。
lex(are,aux,复数,_)。
%%%决定性因素%%%
%对于限定词,信息5按以下顺序出现:单词、语法类别%(决定者),数字
lex(the,det,_)。
lex(a,det,单数)。
lex(二,det,复数)。
%%%预备疫苗%%%
%对于前缀,信息按以下顺序出现:单词、语法类别
(前置5开)
lex(打开,准备)。
lex(in,prep)。
lex(under,prep)。
%我们为前置词指定了一个类别,为被动短语指定了前置词。%当我们连接到语法并习惯于识别的句子时,这将需要
%一个生动的np。参考上面的例子和讨论。
lex(by,byPrep)。
%%%形容词%%%
%对于adjec5ve,信息按以下顺序出现:单词、语法类别(adjec5ve)lex(旧的,形容词)。
lex(年轻的,形容词)。
lex(红色,形容词)。
lex(简写,adj)。
lex(高的,形容词)。
WX:codinghelp
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。