同义词库的Python数据结构

时间:2016-02-17 17:20:12

标签: python algorithm data-structures

我需要为我选择的约100个单词定义同义词。为了测试,我手动添加条目:

t = {}
t.update({'Strong':['Strong', 'Able', 'Active', 'Big',
                    'Energy', 'Firm',
                    'Force', 'Heavy', 'Robust', 'Secure',
                    'Solid', 'Stable', 'Steady',
                    'Tough', 'Vigor', 'Might',
                    'Rugged', 'Sound']})

t.update({'Fast':['Fast', 'Agile', 'Brisk', 'Hot', 'Quick',
              'Rapid', 'Swift', 'Accel', 'Active',
              'Dash', 'Flash', 'Fly', 'Race', 'Snap',
              'Wing', 'Streak', 'Time', 'Chop', 'Jiffy',
              'Split', 'Bat', 'Crazy', 'Double', 'Scream',
              'Sonic', 'Super', 'Ball', 'Speed']})

所以我正在创建一个空字典,然后像" Strong"和"快速"并将其映射到同义词(我需要能够选择)。

由于我只需要100个不同的字映射,这是一种合理的方法吗?或者有更好的方法来实现这个吗?

我也在考虑使用NLTK和wordnet模块。但是,这个模块需要一段时间才能运行,似乎我无法添加我需要的同义词。

2 个答案:

答案 0 :(得分:2)

我可以graph方式组织你的词库。首先,您将所有单词保留在字典word -> key中,然后创建链接列表图表,因为它将是稀疏的。

w = {}
w = {'Fast': 0, 'Strong': 1, 'Able': 2, 'Active': 3, 'Big': 4, ...}

t = {0: [1, 2, 3, ...], ...}

对于大型数据集,它会更好地扩展,因为整数使用的内存少于字符串

答案 1 :(得分:1)

在实际的同义词库中,单个单词可能属于多组同义词。例如, fast 中的 fast 可能是一个列表,而 secure 中的 fast 可能位于另一个列表中。< / p>

我会将每个单词映射到&#34;意义组的列表,&#34;然后每个感觉组将映射到一个单词列表。