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

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

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

这参考别人的,还有个说用二叉树 那个字典树怎么样? 谁指导指导。。
 
分析:
搜索端使用多线程处理,现在服务器都是多核的,可以充分利用服务的资源。

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

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

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

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值