gpt4 book ai didi

gf - 在没有 "to be"的 GF 中生成带有被动时态的句子

转载 作者:行者123 更新时间:2023-12-04 08:39:21 25 4
gpt4 key购买 nike

我使用 Phrase 生成句子“播放 BBC 主持的喜剧电影”。

mkPhr (mkVP(
(mkV2 (mkV ("Play")))
(mkNP
aSg_Det
(mkCN
(mkCN (mkN ("comedy")))
(mkSC (passiveVP
(mkV2 ("host"))
(mkNP (mkN ("BBC"))))))))
但我得到的结果是“播放由 BBC 主持的电影”。我检查了 GF librires,但似乎没有办法将 VP 更改为 NP 以避免“成为”。
请你们教我如何摆脱这种情况,或者在 GF 中有什么方法可以将两个或更多句子加到一个短语中。
谢谢~

最佳答案

点赞@aschepler说,“hosted by BBC”是分词短语,不是被动语态。在 Extend模块中,有几个函数可以从 VP 创建分词:

PastPartAP      : VPSlash -> AP ;         -- lost (opportunity) ; (opportunity) lost in space
PastPartAgentAP : VPSlash -> NP -> AP ; -- (opportunity) lost by the company
所以我们可以使用 PastPartAgentAP创建分词“由 BBC 主持”。
如果你打开 ExtendEng在您的 GF 文件中,您可以使用它的所有功能,就像您已经使用 SyntaxEng 和 ParadigmsEng 一样。 (另见 this answer。)
这是一个示例,您可以将其复制并粘贴到名为 Comedy.gf 的文件中。并在 GF shell 中使用它。
resource Comedy = open SyntaxEng, ParadigmsEng, ExtendEng in {

oper
-- Some lexicon
comedy_N : N = mkN "comedy" ;
host_V2 : V2 = mkV2 "host" ;
play_V2 : V2 = mkV2 "play" ;
BBC_PN : PN = mkPN "BBC" ;

-- Intermediate phrases
hosted_by_BBC : AP =
PastPartAgentAP (mkVPSlash host_V2) (mkNP BBC_PN) ;

comedy_hosted_by_BBC : NP =
mkNP a_Det (mkCN comedy_N hosted_by_BBC) ;

-- The final phrase
play_comedy_hosted_by_BBC : Utt =
mkUtt (mkImp (mkVP play_V2 comedy_hosted_by_BBC)) ;
}
当您在带有标志 -retain 的 GF shell 中打开 Comedy.gf 时,您可以使用命令 cc查看词典和中间结果.例如:
> cc -table comedy_hosted_by_BBC
s . NCase Nom => a comedy hosted by BBC
s . NCase Gen => a comedy's hosted by BBC
s . NPAcc => a comedy hosted by BBC
s . NPNomPoss => a comedy hosted by BBC
a . AgP3Sg Neutr

> cc -one play_comedy_hosted_by_BBC
play a comedy hosted by BBC

关于gf - 在没有 "to be"的 GF 中生成带有被动时态的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64638037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com