data-structures - 什么是存储和使用同义词库的好数据结构?
问题描述
我已经在一个英语词库项目上工作了几年,它结合了一些资源(例如 WordNet、维基词典、Moby 词库、Word2vec)来制作一个大型词库。目前,我将数据定义为列表列表。而且每个环节都有一个分数(越高=越强),所以“hotel”和“inn”的分数可能是2.0;但“酒店”和“跳蚤”的得分为 0.2。高分是近义词,低分是更远的关联。我已经能够使用 Dijkstra 和 A* 来查找单词之间的链接(所谓的“同义词链”)。
是否有一种非常适合此类数据的图形数据库和/或分析工具?词关系强度通常是不对称的。例如,“Hoover Dam”与“Herbert Hoover”的链接比“Herbert Hoover”与“Hoover Dam”的链接更强。我对找到单词之间联系、查找不相关单词、测量单词相似度的更好方法感兴趣。
我会很感激任何新的指针/方向。
解决方案
有趣的问题。不确定最佳数据结构,但对于处理,您可以查看此包中的 shell 邻居:https ://grispy.readthedocs.io/en/latest/api.html
推荐阅读
- python - 在“Evolver Sim Control(eSC)”上运行示例模拟时,是否有人遇到过失败?
- wordpress - add_rewrite_rule 用于自定义帖子类型搜索
- go - 使用 For 循环的 Goroutine 缓冲通道
- scala - 盐渍技术后的 DataSkew - Spark 和 Scala
- java - Redis,监听 pubsub 事件并将其转换为流,以便更可靠地使用
- python - Sympy - 递归形式的算术和几何序列
- flutter - 颤振+自动路由。没有为flutter包项目生成路由
- javascript - 检测到一个单词时带有多条消息的不和谐机器人
- python - 无法从列表中删除值
- azure - 为 Azure Blob 生成预签名 URL 引发空指针异常