找到合适的词汇表数据库来构建C结构

时间:2013-01-19 12:33:59

标签: objective-c c dictionary neural-network vocabulary

让我们从问题的最终目的开始:我的目标是建立一个基于单词的神经网络,它应该采用一个基本的句子,并为每个单词选择它应该在句子本身产生的意义。然后它将学习一些关于语言的东西(例如两个给定单词之间可能的相关性,在单个句子中找到两者的概率等等),并在最后阶段(在学习阶段之后)尝试构建根据一些输入,它自己的一些非常简单的句子。

为了做到这一点,我需要某种数据库来表示给定语言的词汇表,我可以从中提取一些信息,如单词列表,定义,同义词等等。数据库的结构应该能够构建包含所需信息的C数据结构,例如

typedef struct _dictEntry DictionaryEntry;
typedef struct _dict Dictionary;

struct _dictEntry {
    const char *word;               // Word string
    const char **definitions;       // Array of definition strings
    DictionaryEntry **synonyms;     // Array of pointers to synonym words
    Dictionary *dictionary;         // Pointer to parent dictionary
};

struct _dict {
    const char *language;           // Language identification string
    int count;                      // Number of elements in the dictionary
    float **correlations;           // Correlation matrix between i-th and j-th entries
    DictionaryEntry *entries;       // Array of dictionary entries
};

或等效的Obj-C对象。

我知道(来自Searching the Mac OSX system dictionaries?)苹果提供的词典已获得许可,因此我无法使用它们来创建我的数据结构。 基本上我想要做的是:给定一个任意单词A我想获取所有包含A定义的字典条目,并仅选择这样的定义。然后,我将实现某种交叉过程,根据句子的其余部分选择最合适的定义和同义词,并构建相关矩阵。

让我举一个例子:让我们假设我输入一个包含“play”的句子;我想获取所有条目(如“游戏”,“乐器”,“演员”等),“play”这个词可以相互关联,并为每个条目选择相应的定义(我不想要示例提取对应于“工具”含义的“工具”定义,因为您不能“播放工具”)。然后,我将选择最合适的这些定义来查看句子的其余部分:如果它还包含单词“actor”,那么我将指定“播放”含义“戏剧”或其他合适的定义。 最基本的方法是扫描字典中的每个定义,搜索单词“play”,这样我就需要无限制地访问所有定义,据我所知,这不能使用位于/ Library / Dictionaries下的字典来完成。可悲的是,这项工作必须离线完成。

我可以下载任何可用资源,这样我就可以了解所有定义并获取我的信息吗?目前我对任何特定的文件格式都不感兴趣(可能是数据库或xml或其他任何东西),但它必须是我可以分解并放入数据结构的东西。我尝试谷歌它但是,无论我使用什么关键词,如果我包括“词汇”或“词典”这个词我(很明显)只能在某些在线词典网站上获得关于其他词语定义的页面!我想这不是最好的搜索...

我希望问题很明确......如果不是,我会尝试以不同的方式解释它!无论如何,感谢所有人提供任何有用的信息。

1 个答案:

答案 0 :(得分:2)

可能像http://www.eat.rl.ac.uk一样免费的本体论会对你有所帮助。在大学部门,有几个可用。