Wordnet SQL 解释

29

我正在尝试建立一个简单的同义词数据库,以便可以找到用户输入的单词的同义词(仅此而已!)。为此,我获取了Wordnet sql 同义词库的副本 (http://wnsql.sourceforge.net/),但现在我面对所有这些表格,而且我无法在任何地方找到关于它们内容的简单解释:

adjpositions
adjpositiontypes
casedwords
lexdomains
lexlinks
linktypes
morphmaps
morphs
postypes
samples
semlinks
senses
synsets
vframemaps
vframes
vframesentencemaps
vframesentences
words

有人能告诉我这些表格包含什么内容,并且我需要哪些,因为我无法根据它们的数据解密其内容。


user15602949 发布了一个回答,说:“https://web.archive.org/web/20150923131021/http://wnsqlbuilder.sourceforge.net/wnsql.pdf 这个链接基本上概述了整个数据结构,我想留下这个链接供以后参考。” - Scratte
4个回答

46

WordNet是一个超级酷的词库数据库。我一直在研究它。我将列出我的发现-希望能帮助您更好地理解表格。

同义词集表 同义词集表是数据库中最重要的表之一。它负责存储WordNet内所有定义。同义词集表中的每一行都有一个synsetid,一个definition,一个pos(词性字段)和一个lexdomainid(它链接到lexdomain表) WordNet数据库中有117373个同义词集。

单词表 WordNet还有一个“单词”表,只有两个字段:wordid和“lemma”。该单词表负责存储Wordnet数据库中所有基本词元(lemmas)。 该表中有146625个条目。

那么...这两个表如何关联?答案是sense表!

sense表 sense表负责将单词表中的单词与同义词集表中的定义链接在一起。 sense表中的条目被称为“单词意义对”-因为每个wordid与synset的配对都是一个单词的完整含义-一个“单词的意义”。
WordNet数据库中共有206354个单词意义。

词汇域表 词汇域表由sense表引用,用于定义单词意义对所属的词汇域。lexdomain表中有45个词汇域。 因此,lexdomain表是WordNet“标记”单词意义对的方法。但是,它相当有限,因为一个单词意义对只能属于一个词汇域。

这45个词汇域包括:

形容词: 全部、相关

副词 全部

名词

名词 tops,act,动物,人造物品,属性,身体,认知,沟通,事件,感觉,食物,群体,位置,动机,物体,人物,现象,植物,所有权,过程,数量,链接定义,形状,状态,物质,时间,

动词 身体,变化,认知,沟通,竞争,消费,接触,创造,情感,运动,感知,拥有,社交,静态,天气,人类

大小写单词表 单词表中的某些单词自然具有首字母大写,例如“A-team”。由于单词表将所有单词存储为小写,WordNet使用此表来指定单词的大写版本。 该表中有40313个条目。

WordNet数据库中还有许多其他表格,研究完后我会再次发布。

查找同义词 要查找同义词-您需要执行以下操作。

假设您想查找单词“Carry”的同义词。为了这样做,您首先要在单词表中搜索与单词“carry”匹配的引理。这将产生wordid 21253。然后,您需要搜索感官表,以查找所有单词感官对,以查找“carry”一词的同义词。这产生了41个结果-每个结果列出了wordid 21253和senseid(它是单词感官对的索引)和synsetid。

现在,您需要查询每个返回的synsetid的synset表,以便可以访问synset表中的相关定义字段。

最后,要查找所列出的每个synset的同义词,您只需搜索感官表,以查找共享相同synset的其他单词感官对即可。

例如: 单词“carry”的41个单词感官对之一如下所示: wordsense example 如果我们查找此synsetid 202083512的定义,您将找到“传输或作为传输介质服务”

要找到该定义的所有同义词,您可以搜索与synsetid 202083512相同的sense表。这将得出以下同义词:channel、conduct、convey、impart和transmit(注意:您需要左连接words表才能获取实际的引理)。

我希望这能为您解密WordNet...我发现它非常酷...


我想了解更多:它是全部包含在一个数据库文件中还是分成多个文件?创建数据库文件的确切步骤是什么?因为当我运行这个SQLBuilder提供的批处理文件时,我得到了SQL命令错误。 - Master
5
我将数据库下载为MySQL表格,因为我习惯使用它。你可以在这里下载:http://wnsql.sourceforge.net/。希望这能帮到你。 - Paul Preibisch
谢谢保罗的快速回复。所以根据您的说法,我将不得不使用许多 .sql 文件来处理吗? - Master
非常抱歉回复晚了,您下载的WordNet将会有一个SQL文件,您可以使用它进行导入 - 这将创建所有所需的表格... - Paul Preibisch
嘿,保罗,我有以下查询: "select words.lemma AS word,synsets.definition AS Definition From senses LEFT JOIN synsets ON senses.synsetid=synsets.synsetid LEFT JOIN words ON senses.wordid = words.wordid where words.lemma='"+word+"'"; 但它没有返回许多常见的单词(例如分词)。我该如何搜索分词和所有这个查询未返回的单词? - meowmeowbeans
显示剩余3条评论

7

Paul Preibisch解释了几个核心表,以下是其余表格的简短说明:

adjpositiontypes - 定义了英语语言中形容词可以采取的三种位置,谓语、定语和紧随名词之后。

adjpositions - 将具体单词(形容词)与其在adjpositiontypes表中允许的位置类型链接起来。

linktypes - 定义了wordnet中使用的所有关系(链接)类型,大约有两打左右。lexlinks和semlinks表都使用此表来定义每个链接的类型。一些链接类型标记为递归,这意味着如果“furniture”是“chair”的上位词,那么“chair”就是“furniture”的下位词。

lexlinks - 词汇链接,即单词之间的关系。例如:
sad - saddness(派生)

semlinks - 语义链接,即synsets之间的关系。例如:
chair - furniture(上位词)

morphs - 与“words”表相关联,包含不规则的单词形式。一个单词可以有多个morphs,而一个morph可以是多个单词的不规则形式,因此您还需要morphmaps表。例如:
abacus(单词)- abaci(morph)
abhor(单词)- abhorred,abhorring(morphs)

postypes - 定义了“词性”。仅包含以下值:
n - 名词,v - 动词,a - 形容词,r - 副词,s - 形容词卫星。

samples - synsets的示例句子。一个synset可以有多个样例。

vframemaps & vframes - vframes定义了一种标准的“动词模板”。vframemaps将单词(动词)与它们可能出现的相应vframes链接起来。

vframesentencemaps & vframesentences - 与前两个表类似,只是这里你有整个句子作为动词模板。


3
为了正确理解Wordnet中各个术语的含义,您应该阅读详细文档。对于同义词,您主要需要synsets表。您下载的项目中的实际数据库表在项目的模式页面上有描述。

有什么想法可以为给定的单词获取每个意义的实例句子吗? - SexyBeast
1
这个模式页面链接已经失效了 :( 这里有一个 Wayback Machine 的链接,可以查看模式图表:https://web.archive.org/web/20130604065331/http://wnsql.sourceforge.net/images/schemes-wordnet.svg - esperluette

2
我认为这张图将有助于您揭开WordnetDB的神秘面纱。
我在/mysql-3.0.0-31-wn-31/doc/images中找到了它。为了获得更清晰的图片,您可以选择该文件夹中的tables-wordnet.png。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接