1.一种从用户url访问记录中提取用户兴趣话题的系统,所述系统包括搜索词获取模块、数据过滤和整理模块、用户兴趣话题和话题搜索词提取模块、用户搜索词预测模块、搜索网址数据库、用户-话题数据库和话题-搜索词数据库,其特征在于:
搜索网址数据库,保存网址数据,包括已知的搜索引擎的域名、名称、搜索词在url中的字段位置、收录日期、上次更新日期以及本条目被匹配次数;
搜索词获取模块,包括搜索词识别子模块,搜索词识别子模块根据搜索网址数据库中的已有数据,识别出用户访问的用户url访问记录中的搜索词并进行提取;
数据过滤和整理模块,对识别到的用户搜索词进行数据预处理,得到并输出用户-搜索词列表数据;
用户兴趣话题和话题搜索词提取模块,根据数据过滤和整理模块输出的用户-搜索词列表数据提取用户感兴趣的话题以及属于同一话题的搜索词列表数据,提取的结果分别保存到用户-话题数据库和话题-搜索词数据库中,并计算用户在兴趣话题上的权重和此话题内的所有搜索词的占比权重;
用户搜索词预测模块,其将用户在兴趣话题上的权重乘以此话题内的所有搜索词的占比权重,得到用户对所有兴趣话题中的搜索词的权重,然后,将用户对搜索词的权重按照大小排序,取排名靠前的搜索词作为用户可能会喜欢的搜索词。
2.如权利要求1所述的系统,其特征在于:搜索词识别子模块首先从用户url访问记录中取出网址记录,根据标准网址格式解析将其解析成多级域名和多级目录两部分;然后,在搜索网址数据库中检索域名,如正确识别,就得到此域名下搜索词字段位置,进而在多级目录中将该搜索词字段对应的搜索词取出,得到用户访问url中的搜索词内容,并保存。
3.如权利要求2所述的系统,其特征在于:搜索词获取模块还包括搜索网址数据库更新子模块,其用于维护搜索网址数据库,包括增加新的搜索网址和去除无效的搜索网址子模块,
若在搜索网址数据库中没有正确识别出用户访问的用户url访问记录中的搜索词,则将此url网页地址计入匹配失败日志文件;搜索网址数据库更新子模块定期扫描匹配失败日志文件,判断失败网址是否为满足OpenSearch标准的搜索网址,若满足,则将此网页的名称、多级域名、搜索词在url网页地址的字段位置、收录日期信息作为一条新纪录自动加入搜索网址数据库;定期检索搜索词网址数据库中的匹配次数和修改次数两列,将匹配次数为0以及修改次数为0的记录去除。
4.如权利要求1所述的系统,其特征在于:
本系统还包括用户编号与搜索词编号还原模块,
数据过滤和整理模块还输出用户列表数据和搜索词列表数据,其中
用户-搜索词列表数据包括三列,分别是用户id编号,搜索词id编号和搜索频次,用户列表数据为两列,分别是用户代号和用户id编号,
搜索词列表数据包括两列,分别是搜索词和搜索词id编号,
用户编号与搜索词编号还原模块将用户列表数据和搜索词列表数据中的用户id编号和搜索词id编号分别还原为用户代号和搜索词。
5.如权利要求1所述的系统,其特征在于:用户兴趣话题和话题搜索词提取模块首先根据数据过滤和整理模块输出的用户-搜索词列表数据,构建一个m行n列的用户-搜索词矩阵V,其中m,n分别为用户的数量和搜索词数量;矩阵V的每一行表示一个用户的搜索记录,行中的数值为用户对搜索词的搜索频次,对于用户未搜索的关键词,用数值0填充,然后,采用非负矩阵分解的方法将用户-搜索词矩阵V分解为两个非负矩阵W和H的乘积,分解用户-搜索词矩阵的方法是求取最优的wia和hbj,使得求解后的最小二乘差值与原矩阵V最小,即求解以下带有约束项的优化目标函数,得到最优的wia和hbj,
满足0
最后,W和H分别为m*r和r*n的矩阵,r是用于控制提取的话题个数的参数,W表示用户-话题矩阵,H表示话题-搜索词矩阵,W的每一行表示用户对于给定的r个话题的兴趣程度,即用户在兴趣话题上的权重,H的每一行表示话题中搜索词所占的重要性,即此话题内的这一搜索词的占比权重。
6.如权利要求1所述的系统,其特征在于:本系统还包括用户兴趣更新模块,其利用过滤和整理模块处理输出的用户-搜索词列表数据更新用户的兴趣话题,对系统中已有记录用户,更新用户兴趣话题;对于不存在记录的用户,直接利用新数据计算得到的话题作为用户的兴趣话题。
7.如权利要求6所述的系统,其特征在于:用户-话题更新模块的更新方法如下:
对于系统中出现的新用户,将其搜索记录构建为一个长度为n的向量u,n是系统已识别的搜索词数量,向量的每个维度的数值用新用户搜索对于词汇的频次来表示,对于用户没有搜索的词汇,用0进行填充,
利用非负最小二乘法求解方程
HTx=u,
其中,HT为话题-搜索词矩阵的转置,每一列表示一个话题下的高频关键词的权重,求解得到的长度为r的向量x就是用户对r个兴趣话题的权重;
对于系统已有的用户,将其新产生的搜索记录视作一个新用户产生的记录,然后对其使用上述针对系统中出现的新用户的方法提取话题得到长度为r的话题向量unew,然后用一个更新参数α对用户的兴趣话题进行更新,
其中ui为话题i的话题向量,unewi为话题i的新提取的话题向量,uoldi为话题i的已有的话题向量,α为权重值。
8.如权利要求1所述的系统,其特征在于:话题搜索词更新模块利用数据过滤和整理模块处理输出的用户-搜索词列表数据来更新话题-搜索词数据库,首先利用新数据计算新的话题,然后将计算结果与原有话题进行比较,并进行合并和更新。
9.如权利要求1所述的系统,其特征在于:话题-搜索词更新模块更新话题的方法包括:
定期积累一定量的用户-搜索词数据后,进行一次非负的矩阵分解,分解得到Wnew和Hnew矩阵,Hnew为新的话题-搜索词矩阵,矩阵大小为mnew*rnew,
原有的话题-搜索词矩阵为Hold,对Hnew中的每一个话题行向量hnew,计算其与原有话题-搜索词矩阵Hold中的每一个话题行向量hold的余弦相似度:
如果相似度大于给定的阈值t,就将其认定为属于同一个话题,将其合并为一个话题;
如果相似度小于给定阈值t,那么将其为一个新话题加入到原有的话题-搜索词矩阵中,
合并的方式用如下公式计算:
其中hi为搜索词i的向量,hnewi为搜索词i的新的向量,holdi为搜索词i的已有向量,β为权重值。