为了做到这一点,我需要某种数据库来表示给定语言的词汇表,我可以从中提取一些信息,如单词列表,定义,同义词等等。数据库的结构应该能够构建包含所需信息的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或其他任何东西),但它必须是我可以分解并放入数据结构的东西。我尝试谷歌它但是,无论我使用什么关键词,如果我包括“词汇”或“词典”这个词我(很明显)只能在某些在线词典网站上获得关于其他词语定义的页面!我想这不是最好的搜索...
我希望问题很明确......如果不是,我会尝试以不同的方式解释它!无论如何,感谢所有人提供任何有用的信息。