在prolog的嵌套列表中坚持使用WordNet关系

时间:2014-08-18 10:38:23

标签: prolog nlp wordnet

我想使用wordNet关系进行近似匹配, 所以有两个项目大致匹配,如果   (i)根据wordnet,一个人的头部包含另一个的头部   (ii)(a)每个近似匹配的第一个dtr        (b)我们跳过第二棵树的第一个dtr并再试一次

要做到这一点,你需要近似和近似值。

[love, [peter], [susan], [in, [january]] |- [like, [peter], [susan]]

我试图以这种方式解决它,但它无法正常工作:

subsynset([] ,_).

subsynset([H0 | ARGS0], [H1 | ARGS1]) :-
    wordnetsubsumes(H0, H1),
    subsynset(ARGS0,ARGS1).

subsynset(L, [_ | ARGS]):-
    subsynset(L, ARGS).


wordnetsubsumes(H0, H0).

wordnetsubsumes(H0, H1):-
    \+list(
    s(I,_,H0,_,_,_),
    (hyp(I, J) ->
    s(J,_,Hyp,_,_,_),
    Hyp = H1 ;
    subsynset(Hyp, H1))).

我发现我的wordnetsubsumes只检查第一个单词,我不确定它是否在我的代码中检查列表。

通过这种方式,如果在此代码中它与SWI之间存在某些不同,我将使用sicstus prolog。

0 个答案:

没有答案