Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 序言-查找替代词(同义词)_List_Dictionary_Prolog_Predicate_Synonym - Fatal编程技术网

List 序言-查找替代词(同义词)

List 序言-查找替代词(同义词),list,dictionary,prolog,predicate,synonym,List,Dictionary,Prolog,Predicate,Synonym,我想知道如何在Prolog中创建同义词查找器 我这里有些话 word(likes). word(house). word(chair). 如果输入是likes,我想输出一个同义词,比如“loves”。或者对于house,我希望输出“home” 我想用同义词谓词来实现这一点,而不是将替代词添加为新词() 我已经做到了这一点: synonym (house,[home]). 我不确定从何处去。 < P>如果你愿意手动列举你的病例,我会考虑有一个谓词,“标准化”或“简化”词汇表。例如,类似这样的

我想知道如何在Prolog中创建同义词查找器


我这里有些话

word(likes).
word(house).
word(chair).
如果输入是likes,我想输出一个同义词,比如“loves”。或者对于house,我希望输出“home”

我想用同义词谓词来实现这一点,而不是将替代词添加为新词()

我已经做到了这一点:

synonym (house,[home]).

我不确定从何处去。

< P>如果你愿意手动列举你的病例,我会考虑有一个谓词,“标准化”或“简化”词汇表。例如,类似这样的事情:

%% synonym(Synonym, CanonicalTerm) :- Synonym is a synonym for CanonicalTerm
synonym(loves,  enjoys).
synonym(likes,  enjoys).
synonym(enjoys, enjoys).
序言通常在第一个参数上建立索引,因此这种查找速度很快(肯定比枚举整个数据库和执行
member/2
lookup要快)。然后,您可以在解析后或按需执行此步骤,并围绕规范术语编写规则

WordNet可能不考虑<代码>爱情和<代码>,比如是同义词,真的,所以它可能对你的需求造成过度的影响。

让我们将此应用于:

当然,这假设您也更新了
present/4
事实。

您想要的是,它可以方便地作为Prolog数据库提供。
?- phrase(sentence(np(Noun,_), vp(Verb, np(Object, _))),
   [a,teenage,boy,loves,a,big,problem]), 
   synonym(Verb, CanonicalVerb),
   present(Suggestion, Noun, CanonicalVerb, Object).
Noun = boy,
Verb = loves,
CanonicalVerb = enjoys,
Object = problem,
Suggestion = 'construction kit'