有100万个关键词存储在文件keyword.txt中,分析一段话中分析出keyword.txt中包含的关键词...

发布于 2022-09-06 15:55:29 字数 181 浏览 14 评论 0

有100万个关键词存储在文件keyword.txt中,分析一段话中分析出keyword.txt中包含的关键词...
假设keyword.txt中内容如下:
百度
贴吧
搜索
......
输入文本:百度与2013年推出贴吧服务。
则命中的关键是:百度、贴吧

求一个高效的算法解决这个问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝眼泪 2022-09-13 15:55:29

只能说,这里面太多因素了

输入要做分词,分词这件事就是一个要求很高的算法了

关键词库放txt的,那为了减少io肯定要做内存缓存的,百万级中文关键词(最少是个二字词组吧?)内存放不下,那缓存算法也要考虑,比如怎么筛选出要放内存继续放文件内存里只存偏移

如果是工程一点的问题,就是说要求能跑一次求多个输入的命中,那显然还得对关键词做分类排序,重新构建内存中的结构来提高命中率。

但是缓存类的问题个人觉得不跑到一个数量级把缓存 起来,是效率很低的。

再有一个是硬件因素,内存大肯定全塞进去,塞不进去那就要考虑数据结构,而固态的特性和机械硬盘的特性会影响这个数据结构的设计,比如 block 的大小等等。

总而言之,这个问题理论上很难给出特定算法,你还不如全放进数据库,在sql上做优化,至少硬盘/内存这层硬件因素的优化你不需要头疼了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文