我正在从事自然语言生成任务,需要检索与Cyc术语相当的自然语言单词或短语。例如#$$EatingEvent“-> "eat”eat“或”#$coyote-动物“-> "coyote”。
如何通过Java或SubL函数实现这一点?
我正在使用Research 4.0qKB和Core套件v1.0.0-rc4。
发布于 2017-02-07 19:22:33
至少有三种不同的方法可以做到这一点:
这将返回:
(((?X . "prairie wolf")))如果你不问一个答案,你就能得到很多答案:
(new-cyc-query '(#$termPhrases #$Coyote-Animal #$CharacterString ?X) #$InferencePSC )这将返回:
(((?X . "Canis latrans"))
((?X . "coyote (C. latrans)"))
((?X . "C. latrans"))
((?X . "prairie wolves"))
((?X . "coyotes"))
((?X . "coyote"))
((?X . "prairie wolf")))这将返回:
"prairie wolf"
#$singular在这个代码的末尾,nl应该设置为字符串“草原狼”。
我不确定这个解释代码是否是API的1.0.0-Rrc4,但它肯定在1.0.0-rc5中,这是目前可以从dev.cyc.com下载的代码。
发布于 2017-02-11 00:11:38
值得注意的是,您还可以在OpenCyc中获得与Cyc术语相当的NL,而不仅仅是ResearchCyc。
例如,如果您调用以下SubL..。
(生成短语#$Dog)
...in,例如,作为输出,您将获得以下内容:
“狗”prettyString-标准零(#( 0))
请注意,在#$prettyString和#$prettyString(我的OpenCyc版本)中有很多断言。正如DaveS所建议的,您应该能够使用新的-cyc-查询来查询这些内容。
ResearchCyc似乎没有#$prettyString或#$prettyString-规范,但似乎使用了更微妙的本体(一组谓词)来生成NL。我怀疑NL基因知识在RCyc中的覆盖面和灵活性优于OCyc。
我得到了这些结果
CycL修订级别: 10.140388当前KB: 5022
https://stackoverflow.com/questions/42079796
复制相似问题