我有一个庞大的职称数据库,我想要建立一个系统,如果你输入类似"jav“之类的东西,那么接下来它应该会建议一些类似的职位,比如(java developer,java engineer)等等。
我们应该如何处理这个问题?如何构建这样的东西,延迟是最大的关注,因为它必须是实时的。最后,我们必须将其集成到UI中。
有什么建议要继续下去吗?
发布于 2020-11-07 08:29:55
为了提高效率,自动完成算法通常建立在树结构或哈希结构上。一个著名的方法是三元搜索树。使用本源来获得一个初始的想法。它也是一个空间效率比较高的解决方案。您可以在三元搜索树上找到更复杂的系统构建。
另一个很好的解决方案是特瑞。Trie数据结构是三元搜索树的一个很好的替代方案,例如实现检查这。
这两种方法在应用程序的前端都很方便,因为它们是简单但功能强大的方法。除此之外,它们还具有很好的时间和空间复杂性平衡。
此外,快速自动完成库可以帮助您。因为在您的例子中,您可能对同一个作业有两个名称,所以它具有同义词功能。
一般来说,树结构是你要寻找的东西。即使使用二叉树,也可以完成此任务。不过,我建议你考虑的情况是,在现实生活中,很多时候都会出现拼写问题,所以在这种情况下,你要么无法提出一个词,要么建议是不正确的。对于此类问题,还可以使用拼写检查算法,该算法首先检查该单词是否存在,如果不使用拼写检查,则可以使用建议的单词,并且可以根据这些建议建议自动完成。例如,可以输入'Jsva‘而不是'Java’,您的算法将找到正确的单词并相应地提出建议。这是使用ML技术实现自动完成的最佳算法之一.您还可以使用Levenshtein距离构建一个简单的。(然而,拼写错误案例大多被丢弃在系统中,因为修复这些错误的代价很高)
https://datascience.stackexchange.com/questions/85053
复制相似问题