0
点赞
收藏
分享

微信扫一扫

40_3 设计一个系统处理词语搭配,比如中国和人民可以搭配


/*
3)设计一个系统处理词语搭配问题,比如说中国和人民可以搭配,
则中国人民人民中国都有效。要求:

*系统每秒的查询数量可能上千次;
*词语的数量级为 10W;
*每个词至多可以与 1W 个词搭配
当用户输入中国人民的时候,要求返回与这个搭配词组相关的信息。

这参考别人的,还有个说用二叉树 那个字典树怎么样? 谁指导指导。。

分析:
搜索端使用多线程处理,现在服务器都是多核的,可以充分利用服务的资源。

数据结构:
所有词语建一张大表,并给每个词语分配一个id. 存储结构如下:
id1,word1,id2,word2,...,idn,word2
词语的检索使用hash,设计一个好的词语哈希算法,使得检索词语的性能达到O(1)

再建一个词语间搭配关系表,
词语id+词语id list(每个词语id+它对应搭配的词语id集)

检索算法:
查询query --->使用分词,找到所有可能搭配,
-》使用哈希检索到对应的词语-》找他们之间可能的搭配关系,
可以搭配的词组返回,不可以搭配的,返回空结果。

可能词组的搭配关系,每个词可能的搭配关系是1000次,
每两个词之间的匹配次数为10000次

*/


举报

相关推荐

0 条评论