gpt4 book ai didi

language-agnostic - 同义词字典实现?

转载 作者:行者123 更新时间:2023-12-04 08:36:54 24 4
gpt4 key购买 nike

我应该如何解决这个问题?我基本上需要实现一个同义词词典。它需要一些“单词/同义词”对作为输入,我必须能够“查询”它以获取单词的所有同义词列表。

例如:


Dictionary myDic;

myDic.Add("car", "automobile");
myDic.Add("car", "autovehicle");
myDic.Add("car", "vehicle");
myDic.Add("bike", "vehicle");

myDic.ListOSyns("car") // should return {"automobile","autovehicle","vehicle" ± "car"}
// but "bike" should NOT be among the words returned

我将用 C++ 对此进行编码,但我对实现的总体思路很感兴趣,所以这个问题并不完全是特定于语言的。

PS:主要思想是有一些词组(同义词)。在上面的示例中,将有两个这样的组:

{“汽车”,“汽车”,“汽车”,“汽车”}
{“自行车”,“车辆”}

“车辆”属于两者,“自行车”属于第二个,其他属于第一个

最佳答案

我会将它实现为 Graph + hash table/search tree每个关键字都是一个顶点,两个关键字之间的每个连接都是一个边。
哈希表或搜索树将从每个单词连接到其节点(反之亦然)。
提交查询时 - 您找到具有哈希/树的节点并执行所需深度的 BFS/DFS。 (意味着你不能在一定深度后继续)
复杂度:O(E(d)+V(d)) 用于搜索图(d = 深度)(E(d) = 相关深度的边数,V(d) 相同)
O(1) 用于创建边(不包括搜索节点,在其搜索下面详述)
O(logn)/O(1) 用于查找节点(用于树/哈希表)
O(logn)/O(1) 用于向树/哈希表添加关键字,O(1) 用于添加顶点
附言如前所述:设计者应该记住他是否需要有向图或间接图,如问题的评论中所述。
希望有帮助...

关于language-agnostic - 同义词字典实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com