我正在寻找一种构建单词层次结构的方法.
背景:我是一个"业余"自然语言处理爱好者,现在我感兴趣的一个问题是从一组单词中确定单词语义的层次结构.
例如,如果我有一个包含其他人的"超级"表示的集合,即
[cat, dog, monkey, animal, bird, ... ]
我有兴趣使用任何技术,这些技术可以让我提取"动物"这个词,它具有该组中其他词语最有意义和最准确的表示.
注意:它们的含义不同.猫!=狗!=猴子!=动物但是猫是动物的一个子集,而狗是动物的子集.
我知道现在很多人会告诉我使用wordnet.好吧,我会尝试,但我实际上有兴趣做一个特定领域的WordNet不适用的领域,因为:1)Wordnet中找不到大多数单词2)所有单词都是另一种语言; 翻译是可能的,但效果有限.
另一个例子是:
[ noise reduction, focal length, flash, functionality, .. ]
因此功能包括此集合中的所有内容.
我也试过抓取维基百科页面并在td-idf等上应用一些技术,但维基百科页面也没有做太多.
有人可能会告诉我我的研究应朝哪个方向发展吗?(我可以使用任何东西)
看起来你想在WordNet中使用类似上位词/下位词关系的东西,但由于语言和领域特定的覆盖问题而没有实际使用WordNet?也就是说,如果您具有特定于域的hypernym关系,则只需查找包含列表中所有单词的最近父级,或者等于其中一个列表单词的最近节点,就可以获得"超级"表示.并包含所有其他人.
首先,我要指出WordNets实际上可用于许多世界主要语言,请参阅Global WordNet上的列表.
为了获得特定领域的上位词关系,你可以使用Snow等人的学习语法模式中提供的技术来进行自动上位词发现.也就是说,您可以从一小部分种子上位词开始,然后使用它们训练分类器以检测语料库中的上位词.然后,您将对来自域的数据运行此分类器,以构建特定于域的hypernym对的列表.