`
icenows
  • 浏览: 57371 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类

wordnet数据文件整理小结

阅读更多

为了不被wordnet的API所限制,为了不用每次都拿着文档一个一个单位的比对,为了某某某的相似度计算不再计算的头昏眼花,为了我自己之后可能会用到wordnet。In a word,在如此强大的需求之下,我终于决定把wordnet的数据库文件解析出来,按照自己定义的模式保存在数据库中。——在这个过程中,第一次真实得感受到了传统关系数据库的局限性,不知道被热捧的XML数据库发展到什么程度了。

废话一堆,言归正传。接下来,首先将分别说一下总体的思路和wordnet数据库数据表模式的结构和关系,接着依照数据库生成的过程简单解析各张表格的结构,最后部分大概说说目前的使用以及可能的使用,包括一些纯属个人兴趣,和研究或项目没有任何关系的古怪想法。

1、总体思路和数据表模式

wordnet的数据文件分为两类:索引文件*.index和数据文件*.data。其中索引文件主要指定了某一个(字符串)单词所属的同义词集的集合,而数据文件其实是对每一个同义词集的详细解析,包括该同义词集包含的(字符串)单词,对应的周边关系和该同义词集的概念解析。

很自然的,考虑到了直接将一个数据文件映射到一个或者多个数据表上去。就是说数据文件和数据库表之间维护着单映射关系。由此,基于wordnet数据文件的结构分析,数据库的总体模式由四张表组成。分别为:索引文件*.index解析成index_term表,数据文件*.data由三张表组成,这里称之为一张主表加两张附表,主表synset主要保留了同义词集包含的词语和它自身的解析,另外两个表项relation_cnt和verb_frame_cnt分别标记该同义词集的关系数和动词组合结构数。为了最简化数据表的关系,主表和附表都是使用同义词集标记synset_id进行关联。

最终,数据表之间的模式关系可以参见下图一所示:

wordnet数据库模式图

图一、数据库表模式关系图

2、数据库表格解析

index_term表保存了每一个(字符串)词语,以及所有所属同义词集的标记号。这里出现了刚才提到的问题,也就是关系数据库无法有效的表示这种大小可扩展的表项,在程序中synset表项可以使用一个不定长数组来表示,但是在数据库中就比较麻烦了。当然,设置好分割标记,将数组转换成字符串然后建立全文索引也是可以的,理论上来说是这样,但是这样保存的东西使用起来非常麻烦,而且也不直观。

synset表保存了一个同义词集的固有属性,表项中的index_word也是这么个问题。注意其中的relation_cnt项和verb_frame_cnt项,分别标记关系数量和动词组合结构数量。

这里假设分别要了解一个(字符串)词语和一个同义词集的相关信息,应该如何利用数据库最快的获取。

a)、(字符串)词语:首先以该词语w为查询条件在index_term表中获取它对应的所有同义词集的标记号,设为{id},——如果所属同义词集不只一个,那么根据具体情况决定是否要将w绑定到某一个id上。这样,这个问题就转化成获取某一个同义词集的相关信息,具体见a)部分;

b)、同义词集:给定一个同义词集,用它的标记号id作为查询条件在synset表中获取属于该同义词集的所有(字符串)词语。——(字符串)词语和同义词集之间是多对多的关系。如果relation_cnt项和verb_frame_cnt项不为0,说明该同义词集具有相关同义词集和动词组合结构(只有动词的这一项才可能不为0),分别以标记号id到relation表和verb_frame表查找出对应的关系对和组合结构。

注:verb_frame表,目前想不到会有什么用,只是为了边面以后重复解析,所以解析出来了,里面有些内容没有仔细去研究。先忽略之,等以后要用到的时候再去完善。

3、一些应用,包括但不限于,未完待续…

a)、概念相似度的计算:应该说,这个是最无聊,最笨蛋,最缺乏创意的应用,不得不承认,也是用的最多的,——我们都是笨蛋。这个就不说了,或者让某某来解释一下。下文是我们最终讨论的大致算法,和最后编程实现有一些偏差,供参考。

WORDNET相似度计算算法
1、使用关系:
同义关系,is-a关系,part-of关系
2、概念之间以同义集关系进行跳转。
如果两概念之间为同义集关系,则直接计算,
否则同义集之间的关系跳转使用is-a关系和part-of关系
3、概念深度的计算考虑三种选择:
一是单关系单向从根结点开始扫描;
二是两关系(is-a关系和part-of关系)单向从根结点开始扫描;
注意事项:
1、待测试的概念对可以指定所属同义集,也可不指定,此时用所有包含该概念的同义集集合作为待测概念;
2、深度计算是从根节点单向扫描,知道获得待测的两个概念为止;

——之后的想法都比较简单,大都还停留在思考阶段

b)、如果两个概念之间有多条路径,会发生什么?

c)、不同的路径模式之间有什么关系,比如单关系路径,混合关系路径?

d)、我们是不是可以开发一套单词记忆软件,基于同义词集的单词记忆,基于关系的联想记忆?

……

0
0
分享到:
评论

相关推荐

    wordnet 3.1 WordNet词典库 2023最新版

    WordNet 是一个包含大量英语词汇的词典数据库。名词、动词、形容词和副词被分组为认知同义词集(synsets),每个synset表示一个独特的概念。通过概念-语义和词汇关系,这些同义词集之间形成了一个相关词汇和概念的...

    wordnet1.2安装文件

    wordnet1.2的安装文件,有时候在网上不易下载到,以前用的2.1的版本都能下到,现在只能下到这个的,留着吧。

    wordnet11-wn11数据集免费下载

    WordNet是著名的英语词汇数据库,它以网络的形式组织了大量的词汇信息,其中的每个词汇(称为“词元”或“synset”)都与其他词元通过特定的关系连接。WordNet 1.1(wn11)是这个知识库的一个早期版本,包含了大量的...

    wordnet-database:WordNet数据库文件

    在Java环境中,WordNet通常通过特定的API库,如JWI (Java WordNet Interface) 或WNDB.jar,提供对这些数据的访问。 标题“wordnet-database:WordNet数据库文件”表明这个压缩包包含的是与WordNet相关的数据库文件,...

    WordNet2.1(for windows)安装文件和使用教程

    1. `WORDN.CAB`:这是一个 Cabinet 文件,通常包含安装程序所需的组件和资源,可能包括WordNet的特定库或数据文件。 2. `InstMsiW.Exe` 和 `InstMsiA.Exe`:这两个文件是Windows Installer的执行程序,分别用于32位...

    wordnet-infocontent最新版

    3. **配置文件**:这些文件用于设置和定制WordNet-InfoContent的行为,如选择不同的信息内容计算方法、设置阈值等。 4. **文档**:可能包括用户手册、API参考、示例代码等,帮助开发者理解如何使用这个库。 5. **...

    wordnet.owl

    WordNet.owl文件则是WordNet的本体化表示,采用了Web本体语言(OWL)进行编写。OWL是一种强大的本体描述语言,允许精确地定义概念、属性以及概念之间的关系,从而实现对知识的机器可理解表达。 在WordNet.owl中,...

    WordNet

    在实际使用中,开发者和研究人员通常会使用专门的库或API来访问和操作WordNet数据,比如Python的NLTK(Natural Language Toolkit)库就提供了对WordNet的接口。通过这些工具,可以轻松地查找同义词、构建语义网络,...

    WordNet的Java包 JWordNet

    5. **数据接口**:JWordNet封装了WordNet的数据文件格式,使得开发者无需关心底层的存储细节,只需通过简单的API调用即可访问数据。 6. **词汇索引**:JWordNet提供了高效的词汇索引,能快速定位到WordNet中的特定...

    wordnet1.7(owl格式)

    5. **互操作性**:OWL格式的WordNet使得数据能够与其他基于OWL的本体进行融合和互操作,这对于跨领域知识整合和多源信息聚合至关重要。 6. **工具支持**:有许多工具支持OWL的处理,如Protégé(一个流行的本体...

    WordNet-2.1.tar.gz(for linux)安装文件

    在这个压缩包内部,你将找到“WordNet-2.1”这一主要目录,该目录下包含了所有相关的源代码、数据文件以及可能的文档和示例。 WordNet的核心概念是“synset”(同义词集),它将具有相同或相近意义的单词分组在一起...

    NLTK wordnet_ic.zip

    在"wordnet_ic"这个文件中,可能包含了预计算的IC值,这些值可以用于快速计算两个词之间的信息内容平均距离(average information content, AIC),或者是信息内容最小距离(minimum information content, MIC),...

    WordNet-WN18

    数据集WN18是WordNet的子集,包含18种关系和40k种实体。训练集中包含141,442条三元组,验证集中包含2,500条三元组,测试集中包含2,500条三元组。

    jwnl.rar_JWNL_wordNet java_wordnet

    在这个案例中,JWNL API提供了各种方法,如打开WordNet数据文件、查询词汇信息、获取词汇的同义词集(synsets)等。 基于标签"jwnl"、"wordnet_java"和"wordnet",我们可以推断出这个压缩包可能包含了JWNL库的源...

    jwnl.rar_JWNL_wordNet java_wordnet_wordnet JW_wordnet jwnl

    1. **初始化配置**:设置WordNet的数据文件路径,JWNL会读取这些文件来获取所需信息。 2. **创建Dictionary对象**:这是访问WordNet的入口,通过它调用各种操作方法。 3. **词汇查找**:使用`Dictionary`对象的`...

    NLTK wordnet.zip

    id: wordnet; size: 10775600; author: ; copyright: WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved.; license: Permission to use, copy, modify and distribute this software and ...

    cow_wordnet_wn.cow_中文_知识图谱_

    "wn.cow"文件很可能是这个中文WordNet版本的核心数据,包含了词汇的定义、关系和元数据。这个文件可能采用特定的格式,如XML或JSON,用于存储和检索词汇信息。 知识图谱,作为一种结构化的知识表示形式,近年来在...

    WordNet的Java包 JWordNet.7z

    WordNet是一个广泛使用的英语...总的来说,JWordNet是Java开发者处理WordNet数据的强大工具,通过这个库,开发者可以轻松地在Java项目中利用WordNet的丰富词汇资源和语义信息,提升自然语言处理任务的效率和准确性。

    wordnet2.0-1

    WordNet® is a large lexical database of English, developed under the direction of George A. Miller (Emeritus). Nouns, verbs, adjectives and adverbs are grouped into sets of cognitive synonyms ...

    wordnet2.0-2

    WordNet® is a large lexical database of English, developed under the direction of George A. Miller (Emeritus). Nouns, verbs, adjectives and adverbs are grouped into sets of cognitive synonyms ...

Global site tag (gtag.js) - Google Analytics