同义词库的 Python 数据结构

标签 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']})

所以我正在创建一个空字典,然后将“强”和“快速”等词映射到同义词(我需要能够选择)。

因为我只需要 100 个不同的单词映射,这是一种合理的方法吗?还是有更好的方法来实现这一点?

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

最佳答案

我可以用graph 方式组织您的同义词库。首先,您将所有单词保存在字典 word -> key 中,然后制作一个链表 图,因为它是稀疏的。

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

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

对于大型数据集,它会更好地扩展,因为 ints 使用的内存比 strings 少。

关于同义词库的 Python 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463468/

相关文章:

python - 你忽略了哪些 PEP 8 准则,你坚持哪些准则?

python - 将值列表作为选项传递给 3 个下拉菜单

java - 以面向对象的方式思考

javascript - 使用 javascript 使用算法解决问题

data-structures - 朱迪树的使用示例

python - 模型实例未反射(reflect)从自定义字段中的 pre_save 传递的数据

python - 根据其相对于列表中其他值的值在列表中分配变量

c# - 将 3D 网格分割为任意大小的 block

algorithm - 数据结构/检索元素父

C++链表打印崩溃