【问题标题】:Does WordNet have "levels"? (NLP)WordNet 有“级别”吗? (自然语言处理)
【发布时间】:2009-11-08 10:29:19
【问题描述】:

例如...

鸡是一种动物
墨西哥卷饼是一种食物

WordNet 允许您执行“is-a”...层次结构功能。

但是,我怎么知道什么时候停止爬树呢?我想要一个级别。
这是一致的。

例如,如果呈现一堆单词,我希望 wordNet 对所有这些单词进行分类,但在某个级别上,所以它不会走得太远。将“墨西哥卷饼”归类为“事物”过于宽泛,而“墨西哥包裹食品”则过于具体。我想提升或降低层次......直到正确的水平。

【问题讨论】:

    标签: python text nlp words wordnet


    【解决方案1】:

    WordNet 是一个词典而不是一个本体,因此“级别”并不真正适用。

    SUMO,如果你想要一个有向格而不是网络,它是一个与 WordNet 相关的上层本体。

    对于某些领域,SUMO 的中级本体可能是您想要查看的地方,但我不确定它是否有“墨西哥包装食品”,因为它的大部分主题都是科学或工程。

    WordNet 的层次结构是

    beef burrito < burrito < dish/2 < victuals < food < substance < entity. 
    

    实体是一个顶级概念,因此如果您停止使用以下物质,您将获得墨西哥卷饼。您可以基于此计算一个级别,但它不一定与 SUMO 一样一致,或者生成您自己的一组有用的中级概念来终止。 WordNet 中没有“墨西哥包装食品”步骤。

    【讨论】:

    • SUMO 大部分是科学还是工程?它不包含食物、人、汽车、工作等日常用语?
    • SUMO 是上层本体。页面上列出的中级本体(您可以在其中找到“事物”和“牛肉卷饼”之间的概念)不包括食物,但反映了资助该项目的组织的种类。人们有一个中级本体。还有一个用于行业(以及因此的工作),包括食品供应商,但如果你 grep 的话,就不会提到墨西哥卷饼。
    【解决方案2】:

    [请感谢 Pete Kirkham,他首先提到了 SUMO,这很可能回答了 OP 亚历克斯提出的问题]

    (我只是在这里提供补充信息;我从评论字段开始,但很快就用完了空间和布局功能...)

    AlexSUMO 的大部分内容是科学还是工程?它不包含食物、人、汽车、工作等日常用词?
    Pete KSUMO 是上层本体。页面上列出的中级本体(您可以在其中找到“事物”和“牛肉卷饼”之间的概念)不包括食物,但反映了资助该项目的组织的种类。人们有一个中级本体。还有一个用于行业(以及因此的工作),包括食品供应商,但如果你 grep 的话,就没有提到墨西哥卷饼

    我的两分钱
    100% 的 WordNet(3.0 即最新版本和旧版本)映射到 SUMO,而这可能正是 Alex 需要的。与 SUMO(或者更确切地说是 MILO)相关的中级本体有效地在特定领域中,目前不包括 Foodstuff,但由于 WordNet 确实(包括所有 - 嗯,许多 - 这些日常事物)不需要利用任何“在”SUMO 下的正式本体,而是使用 Sumo 的 WordNet 映射(可能除了 WordNet 之外,WordNet 也不是本体,但具有非正式和松散的“层次结构”也可能有所帮助。

    然而,一些困难可能来自两个方面(然后是一些;-)?):

    • SUMO 本体的“级别”可能不是您为特定应用所考虑的级别。例如,虽然“Burrito”带来了“Food”,但在 SUMO 中的顶级实体“Chicken”带来了“Chicken em>”,它只能通过长链找到“Animal”(具体为:Chicken->Poultry->Bird->Warm_Blooded_Vertebrae->Vertebrae->Animal)。
    • Wordnet 的覆盖范围和元数据令人印象深刻,但关于中级概念可能有点不一致。例如,“我们的”墨西哥卷饼的上位词是“Dish”,它提供了大约 140 种食物菜肴,其中包括“Soup”或“Casserole”等泛型以及“Chicken Marengo”(但省略了“Chicken Cacciatore”)

    我提出这些问题的目的不是批评 WordNet 或 SUMO 及其相关本体,而是简单地说明与构建本体相关的一些挑战,特别是在中级。

    尽管基于 SUMO 和 WordNet 的解决方案存在一些可能的缺陷和缺乏,但这些框架的实际使用可能很“符合要求”(85% 的时间)

    【讨论】:

    • 感谢您的澄清。如果我的目标是扫描一份文件,看看那个人有什么食物、工作、爱好、兴趣……你会如何建议我这样做?最好找到一个“食物”的词表和一个“爱好”和“运动”的词表吗?这样做最实用的方法是什么?
    • @Alex:因为您的目标域相对较少,所以我会考虑开发您自己的词典。您可以通过从 SUMO Wordnet 地图或类似来源中提取它们来“启动”它们。您可能还需要建立一个命名实体的列表(例如艺术家、运动员、城市、特定场馆等)。尽管构建这样的列表并不便宜,但您会发现生成的缩减域允许更草率的逻辑/启发式方法,以实现相似(或通常更好)的精度和标记中的召回。
    【解决方案3】:

    为了获得关卡,您需要预先定义每个关卡的内容。本体通常将这些定义为特定概念的直接 IS_A 子级,但如果不存在,您需要自己开发一种方法。

    下一步是优先考虑每个概念,以防您只想为每个单词呈现一个类别。优先级可以通过多种方式完成,例如作为类别和单词之间的 IS_A 关系的计数,或者为每个类别手动选择优先级。对于每个单词,您可以选择具有最高优先级的类别。例如,您可能希望肉类成为“食物”而不是化学物质。

    您可能还想选择一些单词,如果它们在路径中,它们会改变优先级。例如,如果您希望将某些也是食品的化学品标为化学品,但其他化学品仍应为食品。

    【讨论】:

      【解决方案4】:

      WordNet 的上位词树以单词“entity”的单个根同义词集结尾。如果您使用的是 WordNet 的 C 库,那么您可以使用 traceptrs_ds 为同义词集的祖先获得一个 while 递归结构,并且您可以通过递归跟踪 nextssptrlst 指针直到您点击 null 来获得整个同义词集树指针。

      【讨论】:

        【解决方案5】:

        对不起,请问哪个工具可以判断句子的“难度级别”? 我希望找出句子的“相似难度级别”供用户阅读。

        【讨论】:

          猜你喜欢
          • 2022-06-23
          • 1970-01-01
          • 1970-01-01
          • 2015-07-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多