1

我正在尝试使用 GF 库生成句子One of my friends on GF。我没能找到正确的方法来在一个数字之后构建一个 prep 并创建一个复数名词的关系。

在此处输入图像描述

作为Noun Phrase节目的类,NumeralDigits仅具有Common NounNoun在它们之后。

4

1 回答 1

1

计数NP

Noun模块中有一个功能,但不幸的是它不在 RGL API 中。功能是CountNP

CountNP : Det -> NP -> NP ;    -- three of them, some of the boys

要在您的语法中使用它,您需要打开模块 NounEng。通常的做法是打开非 API 合格的模块:而不是open NounEng in { … },我们给它一个简写,比如 N: open (N=NounEng) in { … }。然后在语法正文中,您需要编写N.CountNP. 这是一个示例,您可以将其复制并粘贴到名为Friend.gf.

resource Friend = open SyntaxEng, LexiconEng, (N=NounEng) in {
  oper
    one_Det : Det = mkDet (mkNumeral n1_Unit) ;

    my_friends_NP : NP = mkNP (mkDet i_Pron pluralNum) friend_N ;

    friend : NP = N.CountNP one_Det my_friends_NP ;
}

预定义

其他时候,当您想要修改已经存在的 NP 时,您可以使用Predet类别。以下是示例(您可以将它们粘贴到同一个文件 Friend.gf 中)。

-- The RGL includes some Predets, like all, most and only:
all_friends : NP = mkNP all_Predet my_friends_NP ;
most_friends : NP = mkNP most_Predet my_friends_NP ;
only_friends : NP = mkNP only_Predet my_friends_NP ;
于 2020-11-11T06:49:38.093 回答