Prolog 与 WordNet (3)

(9)wn_at.pl

这个文件描述名词性的与形容词性的同义词集合间的属性关系。属性是由名词描述的实体特征。各种属性有各种取值,并由形容词来描述。例如,名词 size 是个属性,所取的值是 little,small,big,large。名词与形容词之间的关系,由谓词 at 定义:

at(synset_ID_1,synset_ID_2).

于是,词条 at(104322959,301148236). 和 at(104322959,301149766). 确定了同义词集合104322959中的名词 weight 是一属性,并且与之相关的是同义词集合 301148236 中的 heavy 和 集合301149766中的 light。

名词与形容词间的属性关系,是语义层面的关系。

(10)wn_ant.pl

ant 是 antonymous(反义词)的缩写。文件wn_ant.pl存储的全是意思对立的两个一组的反义词。例如,natural object 与 artefact 是一对反义词。表示反义关系的谓词有4个形参:

ant(synset_ID_1,w_num_1,synset_ID_2,w_num_2).
ant(synset_ID_2,w_num_2,synset_ID_1,w_num_1).

其中,synset_ID_1,w_num_1 指向一个词,synset_ID_2,w_num_2 则指向其反义词。

反义关系是相互的,字面意义上的,因其涉及的是2个词,而非2个同义词集合。

(11)wn_sa.pl

这一文件中成对的词汇,处于这样一种关系:一个词是对另一个词的信息补充。这种字面关系,仅存在于动词之间或形容词之间。

表示这种关系的谓词有4个形参:

sa(synset_ID_2,w_num_2,synset_ID_1,w_num_1).

先来看其对动词的应用。前2个形参指定一个动词,后2个形参定义意思相近的动词组。动词组由一个动词和一个介词组成,并且,其含义可不同于原动词。例如,give up 是个动词组,表示停止的意思,不同于原词 give。

sa(200001742,1,200003768,3).
sa(200001742,1,200004389,3).

其中,同义词组200001742和编号1,指定词 breathe。第3和第4形参是其词组 breathe out 和 breathe in。给出的词组,只包括未改变原动词意思的。

对于形容词,前2个形参指定一个形容词,后2个形参指定另一个形容词,并且,后者描述前者。如果同义词集合只有一个形容词,词汇编号w_num取值为0。例如,同义词集合 300012315 只有一个词 abstract,于是,谓词

sa(300012315,0,302319830,0).
sa(300012315,0,301928363,0).

表示出集合302319830中无形难知的词汇,和集合301928363中的抽象词汇。

(12)wn_ppl.pl

谓词 ppl 表示动词和副词间的“分词”关系。英语有现在分词和过去分词,描述时态。由于 WordNet 存储的信息不区分时态,谓词 ppl 描述动词-副词的分词关系。将动词尾加 -ing ,表示现在分词,例如,在短语 a walking person 中,动词 walk 变成形容词 walking。

将词尾加 -ed,表示过去分词,例如 the stressed person ,形容词 stressed 由动词 stress 变化而来。

该谓词有4个形参:

ppl(synset_ID_1,w_num_1,synset_ID_2,w_num_).

后2个形参指向动词,前2个形参确定其相关的形容词。这一关系是字面意义上的。

(13)wn_per.pl

谓词 per/4 表示2个词之间的从属关系。

per(synset_ID_1,w_num_1,synset_ID_2,w_num_2).

前2个形参指定第1个词,它是形容词或副词。若是形容词,第2个词必须是名词或另一个形容词。于是,原有的形容词从属于这个名词或第二个形容词。例如,第一个词是 weekly,从属于名词 week。或者 transatlantic 从属于 Atlantic。

若前2个形参表示一个副词,则第2个词是其据以产生的形容词。例如,副词 essentially 产生于形容词 essential。

(14)wn_fr.pl

这是最后一个Prolog数据库文件,为同一集合里的动词,提供通用的语句框架。相应谓词是:

fr(synset_ID,f_num,w_num).

第1个形参是相关动词同义词集合的标示。第3个形参以编号指定一个词,若值为0,则适用于集合中的全部词。第2形参指定动词适用的语句框架。不幸地是,Prolog数据库不提供语句框架的任何信息。因此,这个谓词没有用处。你应该查询 WordNet 文档(Fellbaum et al. 2003d),找出与 f_num 对应的语句。在本文附带的软件包中,我放入了一个文件 wn_sen.pl,它应当作为 WordNet 的原始文件。据此,增加了谓词 sen (是sentence的缩写)。

sen(f_num,string_1,string_2).

形参 String_1 是查出的动词之前的语句部分,string_2 是该动词之后的语句部分。例如,prefer 是同义词集合201433968中唯一的单词,查询 fr_wn.pl,我们得到谓词 fr(201433968,15,0).

于是,我们得知在此集合中只有一个动词,编号为 15。我们再查询新的谓词,从sen(15,‘Somebody’,‘s something to somebody’),发现动词 prefer 的用法是“Somebody prefers something to somebody”。

为了实验谓词 fr/3 和 sen/3,可以运行下列程序。当然,首先要用 consult 命令,把文件 wn_s.pl, wn_fr.pl and wn_sen.pl 装入内存。

% 谓词 sentence_frame(+Verb)
% 以“原子”作形参,应为动词,并在屏幕上打印包含该词的语句

sentence_frame(Verb) :-
    s(Num,W_Num,Verb,v,_,_),
    fr(Num,F_Num,W_Num),
    sen(F_Num,String_1,String_2),
    write(String_1),
    write(Verb),
    write(String_2), nl.

sentence_frame(Verb) :-
    s(Num,_,Verb,v,_,_),
    fr(Num,F_Num,0),
    sen(F_Num,String_1,String_2),
    write(String_1),
    write(Verb),
    write(String_2), nl.

谓词 sentence_frame/1 从输入的动词,通过 s/6 找到它的同义词集合标示,然后,查询谓词 fr/3,匹配 W_Num 成功后,查询 sen/3 得到动词的上下文字符串,将其打印。若 W_Num 匹配失败,则回溯到 sentence_frame/1 的第二子句,此时,W_Num 值为0,即该集合中动词只有一种上下文关系,并打印之。 

例如:

?- sentence_frame(‘prefer’).
Somebody prefers something.

?- sentence_frame(‘walk’).
Somebody walks.

?- sentence_frame(‘give’).
Somebody gives somebody something.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值