首页 > 试题广场 >

子query统计和重要子query识别

[问答题]
子query统计和重要子query识别
问题定义:
当query A切词后的term集是query B切词后的term集的真子集时,称query A为query B的子query,例如:
“刘德华”的切词结果为“刘德华”;
“刘德华电影”的切词结果为“刘德华 电影”;
“刘德华最新电影”的切词结果为“刘德华 最新 电影”;
“刘德华电影下载”的切词结果为“刘德华 电影 下载”;
根据以上切词结果,刘德华”是“刘德华电影”,“刘德华最新电影”, “刘德华电影下载”的子query;
“刘德华电影”是“刘德华最新电影”, “刘德华电影下载”的子query;
但是,“刘德华电影下载”和“刘德华最新电影”互相不是对方的子query。
现有亿级的用户query,并且知道每个query的查询次数,要求:
(1)列出一个query的全部子query,写出C语言实现。
(2) query中的不同term对这个query的重要性不同的,例如“刘德华 电影 下载”中“刘德华”和“电影”的重要性比“下载”重要,因为:“刘德华 电影“所表达的查询需求,与”刘德华 下载“或者”电影 下载“相比,更接近原query的需求。根据(1)中的统计的子query数据,请给出一种思路,来计算一个query中的所有子query的重要性排序。
如果认为子query数据的信息不够充分,请给出还需要哪些信息,以及获得这些信息的途径,给出算法思路描述,必要的符号和推理公式即可。
对第二个问,用tf-idf计算query中每个term的权重值,然后根据子query中包含的term,把term的权重值加和,根据最终的权重值从大到小排序所有子query
发表于 2016-10-08 14:39:51 回复(0)