【问题标题】:Natural language word (phrase) for cyc termcyc 术语的自然语言词(短语)
【发布时间】:2017-02-07 00:38:30
【问题描述】:

我正在处理自然语言生成任务,需要检索与 Cyc 术语等效的自然语言单词或短语。例如。 “#$EatingEvent”->“吃”或“#$Coyote-Animal”->“coyote”。

如何通过 Java Api 或 SubL 函数来实现?

我正在使用 Research Cyc 4.0q KB 和 Cyc Core API Suite v1.0.0-rc4。

【问题讨论】:

    标签: nlp artificial-intelligence java opencyc


    【解决方案1】:

    其他读者可能会注意到,您还可以在 OpenCyc 中获得一些与 Cyc 术语等效的 NL,而不仅仅是 ResearchCyc。

    例如,如果你调用下面的 SubL...

    (生成短语#$Dog)

    ...在例如您将获得此作为输出的交互器:

    “狗” prettyString-Canonical 零 (#( 0 NIL))

    请注意,在(我的版本)OpenCyc 中有很多关于#$prettyString 和#$prettyString-Canonical 的断言。正如 DaveS 建议的那样,您应该能够使用 new-cyc-query 查询这些。

    ResearchCyc 似乎没有#$prettyString 或#$prettyString-Canonical,但似乎使用更微妙的本体(一组谓词)来生成NL。我怀疑 RCyc 中 NL gen 知识的覆盖面和灵活性要优于 OCyc。

    我在

    上获得了这些结果

    CycL 修订级别:10.140388 当前知识库:5022

    【讨论】:

      【解决方案2】:

      您至少可以通过三种不同的方式实现这一目标:

      1. 使用 Cyc 查询。下面是运行查询的 SubL 表单,但查询可以通过 Java API 或通过 Cyc 浏览器轻松使用:

        (new-cyc-query '(#$termPhrases #$Coyote-Animal #$CharacterString ?X) #$InferencePSC '(:max-number 1))

      这会返回:

      (((?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")))
      
      1. 使用 SubL 生成形式:

        (生成短语#$Coyote-Animal)

      这会返回:

      "prairie wolf"
      #$singular
      
      1. 使用 Java API:

        Paraphraser termParaphraser = getTermParaphraser();
        KbObject coyote = KbCollectionFactory.get("Coyote-Animal");
        String nl = termParaphraser.paraphrase(coyote).getString());
        

      在这段代码的最后,应将 nl 设置为字符串“prairie wolf”。

      我不确定这个释义代码是否是 API 的 1.0.0-Rrc4,但它肯定在 1.0.0-rc5 中,目前可从 dev.cyc.com 下载。

      【讨论】:

      • 这很棒,正是我想要的。 @DaveS,您能否建议有关 SubL 文档的任何材料(至少是命令描述)?我可以在旧的 cyc.com 网站上找到一些信息,但现在似乎不可能,因为他们已经改变了设计,而且大部分旧链接都无法使用。谢谢!
      猜你喜欢
      • 2011-03-13
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 2020-04-03
      • 2011-02-10
      相关资源
      最近更新 更多