我正在尝试使用 GF 库生成句子One of my friends on GF。我没能找到正确的方法来在一个数字之后构建一个 prep 并创建一个与复数名词的关系。
作为Noun Phrase
节目的类,Numeral
或Digits
仅具有Common Noun
或Noun
在它们之后。
我正在尝试使用 GF 库生成句子One of my friends on GF。我没能找到正确的方法来在一个数字之后构建一个 prep 并创建一个与复数名词的关系。
作为Noun Phrase
节目的类,Numeral
或Digits
仅具有Common Noun
或Noun
在它们之后。
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 ;