法律状态公告日
法律状态信息
法律状态
2017-02-15
授权
授权
2014-04-23
实质审查的生效 IPC(主分类):G06F17/30 申请日:20131218
实质审查的生效
2014-03-26
公开
公开
技术领域
本发明涉及企业知识库与智能推荐技术领域,具体说是一种基于用户历史 行为特征的知识文档推荐方法。
背景技术
在一些大型的IT公司中已经成立了企业知识库,以存储企业基本信息: 公共关系信息、年度报告、出版物和企业总体介绍等;企业组织结构信息:地 址、代理商、分公司、服务中心等的信息产品和服务的信息:技术专长、服务 特点等;基本流程信息;关于专利、商标、版权,使用其他企业技术、方法学 可证的信息;顾客信息等。而很多员工发现他们很难在公司中找到他们需要的 知识,通常员工们不知道这些信息保存在哪里,也不知道哪些信息或者文章可 以为他们所用。在上述众多信息中,知识、文件多、难以管理、知识利用率低 已经成为企业知识库的首要问题之一。此时,根据企业知识库的用户需要系统 能根据他们的使用习惯、在登录后主动推荐用户可能需要的知识的需求日益强 烈。
现阶段一些公司如Amazon,eBay,淘宝,豆瓣,当当网等一些商务网站 已经能够根据用户的购买记录、浏览、检索、收藏行为等分析用户的购买兴趣 并向其主动推荐商品。也有一些文献利用用户的阅读记录为用户的阅读行为建 模,仿照购物篮模型分析有相似阅读行为的用户最喜欢阅读的文章类型,也即, 分析的是“阅读这篇文章的用户还有可能阅读另外哪些文章”。这种方式的劣 势在于,依赖用户群体,也称为“冷启动”,即,当一个系统刚刚启动还只有 很少的用户时系统无法建立有效的模型。且如果一篇文章已经很久没有用户阅 读,那么即使这篇文章的知识价值再高也难以用这种模型推荐给用户。
本方案亟需解决企业中沉淀的大量知识无人阅读,而新员工找不到这些相 关知识的问题。
发明内容
本发明所要解决的技术问题是提供一种基于用户历史行为特征的知识文 档推荐方法,是基于用户历史行为特征的知识文档推荐方法,主动向用户推荐 企业知识库中存储的与用户历史行为特征相关的知识文档。
基于用户历史行为特征的知识文档推荐方法,
首先,由管理员将文章集建立知识库,确定知识库中文章的分类;
之后,登陆用户上传新的文章到知识库后,为上传的文章标注类别;
第三步,系统收集用户上传的以及阅读过的文章并进行归类分析;
最终,根据分析结果向该用户推荐同类别的其他文章阅读,并排列推荐文 章的显示顺序,其特征是:
向用户推荐文章的方法为基于词频的关联知识挖掘方法,具体为:分析用 户历史行为特征,建立用户历史行为特征库,通过计算用户上传的以及阅读过 的文章中每个词语的词频,以词语和词频作为项和支持度,用FP-Tree算法挖 掘出与用户上传之文章最具相关性的文章,包括下述三种,下述的N为1~15:
第一种方式,该用户上传或阅读的文章种类的知识文档中点击数最高的N 篇文章;
第二种方式,该用户上传或阅读的文章种类的知识文档中好评数最多的N 篇文章;
第三种方式,通过数据挖掘得到与用户上传、阅读过的文章中知识关联性 最大的N篇文章;
第三种方式具体为,
对知识库中的文章做分词处理形成知识库词库,
提取用户上传过、阅读过的文章做分词处理形成用户词库,
约减用户词库形成优化用户词库,
通过FP-Tree算法对用户词库进行数据挖掘得到频繁项集,
根据频繁项集中的词在优化词库的各对应类别中的词频确定知识最相关 的N篇文章。
所述用户历史行为特征库,是知识库用户在上传和阅读过程中,包括用户 上传过的文章、上传文章的类别、阅读过的文章、阅读过文章的类别。
所述知识库词库以下述方式得到:
首先对知识库中的每一篇文章做分词处理,分词后,首先统计词频TF (term frequency,TF表示某个词或短语在一篇文章中出现的频率),对于在 第j篇文章中的第i个词语ti,它的重要性表示为:
上式中ni,j是词ti在文章dj中出现的次数,分母是在文章dj中所有字词的出 现次数之和,下标i、j、k均表示序号;
然后统计词语的逆向文档频率IDF(inverse document frequency,IDF是 一个词语普遍重要性的度量),由下式得到:
其中:idfi表示第i个词语的IDF值,|D|是知识库中文章的总数,|{d:ti∈d}| 是知识库中包含词语ti的文章数目,
再以下式计算TF-IDF(term frequency–inverse document frequency)词 频:
tfidfi,j=tfi,j*idfi,
tfidfi,j表示第j篇文章中第i个词的TF-IDF词频,统计出的每个知识类别 词语的TF-IDF词频值,以包含有【词,TF-IDF词频】对的形式作为知识库 词库存储。
所述用户词库以下述方式得到:
首先提取用户上传和阅读过的文章组成文章集,然后用下述方法对文章集 中的每篇文章提取TF词频:
首先对文章集中的每一篇文章做分词处理,分词后,首先统计词频TF, 对于在第j篇文章中的第i个词语ti,它的重要性表示为:
上式中ni,j是词ti在文章dj中出现的次数,分母是在文章dj中所有字词的出 现次数之和,下标i、j、k均表示序号;
然后统计词语的逆向文档频率IDF,由下式得到:
其中:idfi表示第i个词语的IDF值,|D|是知识库中文章的总数,|{d:ti∈d}| 是知识库中包含词语ti的文章数目,
再以下式计算TF词频TF-IDF:
tfidfi,j=tfi,j*idfi,
tfidfi,j表示第j篇文章中第i个词的TF-IDF词频,统计出的每个知识类别 词语的TF词频值,得到【词,TF词频】对,以包含有【文章,【词,TF词 频】】对的形式存储为用户词库。
对所述用户词库进行约减,每个类别只保留TF词频值与TF-IDF词频值 之和在30%以上的【词,TF词频】对,作为优化用户词库存储,所述优化用 户词库与所述用户词库的格式一致。此处,词频值的约减限额也可以是其它百 分比数值。
所述通过FP-Tree算法对用户词库进行数据挖掘得到频繁项集具体为,使 用数据挖掘中的FP-Tree算法对用户的阅读习惯做文本信息挖掘,找出最有可 能在阅读时一起出现的词语存储为频繁项集,方法为:
输入用户词库中某一知识类别中所有该用户阅读过的文章,输出频繁项 集,以【词,TF词频】对作为FP-Tree的【项,值】对,【词,TF词频】对 中的“词”作为FP-Tree的搜索项,第一次搜索的时候用“TF词频”代替原 算法中的项的频率,设一个词语的TF词频为支持度阈值,如果频繁项集中的 项不满足支持度阈值,则丢弃该项,满足支持度阈值则生成FP-Tree。
使用数据挖掘中的FP-Tree算法对用户的阅读习惯做文本信息挖掘的具体 实现方法如下:
输入词表,词表结构包括文章ID、该文章中的词语、对应词语的词频, 第一步:扫描所述词表,累计所有文章中各词的TF词频之和;设最小支持 度,舍弃支持度小于所述的最小支持度的累计词的这一项,得到频繁项集;
第二步:对于每一条记录,按照所述频繁项集中TF词频之和的大小重新 排序;
第三步:把第二步得到的各条记录插入到FP-Tree中,构造FP-Tree,构 造FP-Tree的过程为:
(1)定义FP-Tree的根节点为空,以null标记,
(2)在null标记后面插入第一条记录:文章1的词语表,
(3)在第一条记录后面插入第二条记录:文章2的词语表,
(4)在第二条记录后面插入第三条记录:文章3的词语表,直至遍历完 成整个数据库,FP-Tree构造完成。
第四步:从FP-Tree中找出频繁项,以如下方式遍历FP-Tree的表头中的 每一项:
(1)从FP-Tree中找到所有的“指定词”节点,向上遍历它的祖先节点。
(2)对于每一条路径上的节点,其词频值都设置为“指定词”的词频值。
(3)每一项末尾都是“指定词”,可以把“指定词”去掉,得到条件模式 基(Conditional Pattern Base,缩写为CPB),此时的后缀模式是:“指定词”。
(4)把第(3)项结果当作原始的事务数据库,递归迭代执行,模式增长 通过后缀模式与条件FP-Tree产生的频繁模式链接实现,即可得到频繁项集。
所述确定知识最相关的N篇文章采用如下方法:
查询频繁项集中的词语在知识库词库对应类别的每篇文章中出现的次数, 将具体每篇文章中出现过的频繁项集中的词语的TF-IDF词频之和为最大的N 篇文章,其中不包含该用户上传和已阅读过的文章,推荐为具有最相关知识的 文章。
所述排列推荐文章的显示顺序采用如下方法:
统计向用户推荐文章的方法中三种方式所选中的文章是否重复出现,如果 重复出现则统计每篇文章重复出现的次数,按每篇文章的重复出现次数倒序排 列,即,重复出现次数最多的排在最前面,重复出现次数最少的排在最后面; 如果出现重复次数相同的文章,则按上传时间倒序排列,即,上传时间最晚的 排在最前面,上传时间最早的排在最后面。
在本方案中,使用FP-tree算法的支持度在本应用中是统计每个项出现的 次数,如果用支持度,就是统计1个词在多少篇文章中出现过。本方案用词频 代替了支持度,先统计1个词在一篇文章中出现的次数,然后再统计这个词在 所有的文章中出现了多少次。以此方式计算出所统计的词的重要性。通常一个 有意义的词在文章中出现的频率越高,这个词被认为越重要。
在本方案中,我们关心在文章中最频繁出现的词语,通常具有相关性的一 组文章会具有一组高度相似的高频词组。这些高频词组对应FP-tree算法挖掘 出的频繁集。FP-tree算法在处理大数据时只扫描2次数据库,且不产生候选 频繁项集,运行效率相比其它算法大幅提高。
FP-tree的基本思想是:首先扫描整分词后的文章表(在实施例中是扫描 TokenList),生成频繁项集,并把它们按降序排列,排除支持度计数值小于最 小支持度的项,产生结果集;然后按照频繁项集描绘出一棵FP-tree,同时依然 保留其中的关联信息;最后再扫描事务数据库一次,由下往上循序进行挖掘, 删除FP-tree中的子节点,即可产生所需要的频繁模式。因而执行效率高。
FP-tree在执行过程中对频繁项的重要度做了排序,为后面筛选最佳词语 带来优势,进一步提高了执行效率,而传统的关联规则算法产生的是无序的频 繁项集。
本方案解决了背景技术中所说的企业中沉淀的大量知识无人阅读,而新员 工找不到这些相关知识的问题。系统建模之初,没有用户浏览及阅读记录,本 方案分析系统中已经存在的知识文档,为这些文档内容的共性建模,按类别建 立文档特征库,对文档特征的分析及推荐不依赖其它用户的阅读行为,避免了 “冷启动”现象。对长时间无人阅读的文章,只要其词频特征显示这篇文章对 某阅读用户非常重要,也可以出现在用户阅读的推荐列表中。
与现有的技术相比,本发明通过多种方法向用户推荐可能相关的知识,使 用了能发掘出知识库中已有的文章中知识内容潜在的关联的数据挖掘方法,也 兼顾了传统方法统计得出的总点击数较高、好评度较高的文章价值也较高的结 论,同时向用户推荐潜在知识关联性较高的文章,和传统认为好评数较高的文 章和总点击数较高的文章,使知识推荐更全面、更快速、更准确。本发明对基 于FP-Tree的文本挖掘做了改进,用词频代替FP-Tree中的支持度,提高了算 法的性能。
附图说明
图1为本发明实施例提供的知识推荐流程示意图;
图2为本发明实施例提供的智能推荐方法流程图;
图3为本发明实施例提供的构造FP树步骤一;
图4为本发明实施例提供的构造FP树步骤二;
图5为本发明实施例提供的构造FP树步骤三。
具体实施方式
下面结合实施例对本发明进一步说明:如图1~5中所示,本发明提出了 一种知识文档推荐的技术方案。下述本发明实施例提出的技术方案中,首先由 管理员确定知识库中文章的分类,然后登陆用户上传文章到知识库、为上传的 文章标注类别,再由系统收集登陆用户上传的以及阅读过的文章种类,向用户 推荐同类别的其他文章阅读。推荐的方法有三种,三种推荐方法如果选中了相 同的文章则按下面的方法向用户展示:如果推荐方法一选出了文章一、文章二、 文章三,推荐方法二选出了文章二、文章四、文章五,推荐方法三选出了文章 一、文章二、文章五,则系统向用户推荐文章一、文章二、文章三、文章四、 文章五,五篇文章中三种推荐方法选中的重复次数最大的一篇文章排在推荐阅 读的第一位,重复次数第二的排在推荐阅读的第二位,依次往后,重复次数相 同的文章按上传日期倒序排列。下面的说明以每种方法均选中前10篇最具相 关性的文章为例:
其中,推荐方法一的具体内容是,某一文章种类的知识文档中点击最高的 10篇文章。
推荐方法二的具体内容是,某一文章种类的知识文档中好评最多的10篇 文章。
推荐方法三的具体内容是,通过数据挖掘中的关联规则算法挖掘出与用户 上传、阅读过的文章中知识关联性最大的10篇文章。
应该认识到,本发明实施例提出的技术方案中确定推荐文章的显示排列顺 序并不局限于上述方式,也可以是其他方式。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描 述,显然,下面所描述的实施例是本申请的一部分实施例,而不是全部实施例。
如图1所示,为本发明实施例提出的知识推荐流程示意图。
知识库,系统的知识库包含了企业内用户上传的所有文章和相关操作记 录,知识库用户组成的用户群上传文章到知识库,并为他们上传的文章标注类 别,文章的种类是管理员在系统启用前设定好的,但管理员也可以在系统启用 后增加和修改文章的种类。知识库有以下条目:
用户行为特征库,是知识库用户在上传和阅读过程中,系统记录下来的行 为特征,包括用户上传过的文章、上传文章的类别、阅读过的文章、阅读过文 章的类别。用户行为特征库有以下条目:
步骤101,统计历史行为,统计用户历史行为特征,记为用户行为特 征库。为下一步推荐与用户最相关的知识文章做准备。
具体的,采用三种方法选取与用户最相关的知识文章,分别是步骤102 点击最高的10篇文章、步骤103好评最多的10篇文章、步骤104智能推荐 最相关的10篇文章。用户1的历史行为包括:
步骤102,对应方法一,具体为,点击数最高的10篇文章,取点击数 最高的10篇文章然后转到步骤105。
具体的,统计用户1上传的所有文章类别,统计所有类别中所有用户 对每篇文章的点击数,取点击数最高的10篇文章。
步骤103,对应方法二,具体为,好评数最多的10篇文章,取好评数 最高的10篇文章然后转到步骤105。
具体的,统计用户1上传的所有文章类别,统计所有类别中所有用户 对每篇文章的好评数,取好评数最高的10篇文章。
步骤104,对应方法三,以本方案规则智能推荐最相关的10篇文章, 取最相关的10篇文章然后转到步骤105。
具体的,如图2所示,为本发明实施例提供的本方案规则智能推荐方 法(方法三)流程图,包括以下步骤:
步骤201,提取词库,首先对知识库中的每一篇文章做中文分词处理, 知识库中的每一篇文章都可以看做是一个汉字序列,将此汉字序列分割成一个 一个单独的词,本发明选用的是Ik-Analyzer分词器。应该注意的是,这里采 用Ik-Analyzer分词器只是一种实施例,也可以采用任何一种其它的中文分词 器。分词后,首先统计词频(term frequency,TF),TF表示某个词或短语在 一篇文章中出现的频率。对于在某一特定文章中的词语ti,它的重要性表示为:
上式中ni,j是词ti在文章dj中出现的次数。分母是在文章dj中所有字词 的出现次数之和,其中的下标i、j、k分别表示词、文章、词的序号。
然后统计逆向文档频率IDF(inverse document frequency),IDF是 一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文章数目除以包 含该词语之文章的数目,再将得到的商取对数得到,词ti的IDF值为:
其中:|D|是知识库中文章的总数;|{d:ti∈d}|是知识库中包含词 语ti的文章数目;IDF所表达的是:如果包含词条的文档越少,IDF越大,则 说明词条具有很好的类别区分能力。
再计算TF-IDF词频(term frequency–inverse document frequency, TF-IDF):
tfidfi,j=tfi,j*idfi;
TF-IDF词频的作用在于体现某词语的重要性,越重要、对类别的区分度 越高的词语具有更高的TF-IDF值。统计出的每个知识类别词语的TF-IDF值, 以(词,TF-IDF词频)对的形式作为知识库词库存储。知识库词库的内容:
步骤202,提取用户词库,首先提取用户上传和阅读过的文章组成文 章集,然后用步骤201中所述方法对文章集中的每篇文章提取TF词频,以(文 章,(词,TF词频))对的形式存储为用户词库,用户词库的保存格式为:
表中字母n表示该类别的最大序号。
具体的,用户词库存储了每位用户阅读过的文章词表,上表中的一行表示 一位用户阅读过的一篇文章。在一个知识库中一位用户掌握的领域通常只涉及 所有文章类别中的2~3种,所以对用户的阅读习惯进行数据挖掘是可行的。
步骤203,约减词库,对用户词库进行约减,首先扫描用户词库,对 用户词库中的每一个词到知识库词库中查询,查询可得到与这个词对应的 TF-IDF词频,然后将TF-IDF词频与这个词的TF词频直接相加,记为综合 词频并降序排序,再提取前30%的词到用户词库中查询出该词的(词,TF词 频)对,作为优化用户词库存储,优化用户词库的大小比用户词库小,格式一 致。约减词库的优势有二:其一,起到特征筛选的作用,TF词频体现了特定 词在某领域文章中出现的频率及重要度,TF-IDF词频可体现特定词在类别间 的区分度,二者相加TF-IDF词频和TF词频都大的词能排在前面,可以提高 推荐的准确度。其二,在于减少冗余,提高运算速度。
步骤204,FP-tree算法,本发明用数据挖掘中的FP-tree算法对用户 的阅读习惯做文本信息挖掘,找出最有可能在阅读时一起出现的词语作为频繁 项集,存储为频繁项集。
具体的,本步骤用FP-tree算法找出每个文章类别最有可能一起阅读 的文章中的词汇。算法中所用FP-tree算法的输入为:优化用户词库中某一知 识类别中所有用户阅读过的文章;输出频繁项集,具体用表格描述,输入是:
表格的每一行是文章,取上表中的(词,TF词频)对,作为FP-tree 的(项,值)对,其中“词”作为FP-tree的搜索项,第一次搜索的时候用“TF 词频”代替原算法中的项的频率。算法中设一支持度阈值,如果项集I中的项 不满足最小支持度阈值,则丢弃该项,满足最小支持度阈值生成FP树。本发 明中,项集是优化用户词库中的词语,支持度是词语的TF词频。频繁项集是 算法运算完成后得到的一系列最有价值的关键词词表。
FP-tree算法执行用户阅读习惯挖掘的实现过程如下:
输入词表TokenList:
其中,词a、词b、……代表文章中出现的词语,与之对应的TF1、 TF2、……,是相应项的TF词频。
第一步:扫描词表TokenList,累计所有文章中词a、词b、词d……的 TF词频之和;设最小支持度为MinSup,如果累计词b的支持度小于MinSup 则舍弃词b这一项。例如上表,可统计得:(词a,ΣTFa),(词d,ΣTFd),(词 c,ΣTFc),……,以上结果就是频繁项集1,记为F1。其中,ΣTFa、ΣTFd、 ΣTFc分别是词a和词b的TF值之和,且在F1中ΣTFa≥ΣTFd≥ΣTFc。
第二步:对于每一条记录,按照F1中的顺序重新排序。(第二次也是最后 一次扫描数据库)
左边第一列是文章的编号,第二列是文章中的词语且已经按 ΣTFa≥ΣTFd≥ΣTFc的顺序为词语排序,第三列是对应词语在所在文章中的TF 词频之和。
第三步:把第二步得到的各条记录插入到FP-Tree中,构造FP树。
(1)定义FP树的根节点为null。
(2)插入第一条,文章1的词语表,如图3所示。
(3)插入第二条,文章2的词语表,如图4所示。
(4)插入第三条,文章3的词语表,如图5所示,直至遍历完成整个数 据库,FP树构造完成。
第四步:从FP-Tree中找出频繁项。
遍历表头中的每一项,以“词a”为例,执行以下(1)~(4)的步骤。
(1)从FP-Tree中找到所有的“词a”节点,向上遍历它的祖先节点。
(2)对于每一条路径上的节点,其词频值都设置为“词a”的词频值。
(3)每一项末尾都是“词a”,可以把“词a”去掉,得到条件模式基 (Conditional Pattern Base,CPB),此时的后缀模式是:(词a)。
(4)把第(3)项结果当作原始的事务数据库,递归迭代执行,模式增长 通过后缀模式与条件FP树产生的频繁模式链接实现,即可得到最终的频繁项 集。
步骤205,确定最相关文章,查询频繁项集中的词语在知识库词库对 应类别中的每篇文章具体每篇文章中出现的次数,将具体每篇文章中出现过的 频繁项集中的词语TF-IDF词频之和最大的10篇文章推荐为最具有最相关知 识的文章,转到步骤105。每个用户有各自的频繁项集。对用户推荐的是每个 知识类别中的前10篇文章,但不包含用户上传和已阅读过的文章。频繁项集 的内容如下:
具体的,首先扫描知识库中的文章,对其中的文章逐篇分词得到文章 分词表,然后从文章分词表中筛选出在频繁项集中出现过的词语。查询这些词 语的TF值及TF-IDF值,计算TF-IDF词频的累计值ΣT,其中ΣT的计算方 法为:ΣT=TF*TF-IDF。再选取ΣT最大的10篇文章作为最相关的文章输出。
特别地,如果某篇文章仅包含这些频繁项集词语中的一项或几项,则 仅统计这几项的ΣT。
步骤105,推荐文章排序,为步骤102、步骤103、步骤104选中的推 荐文章排序。
具体的,首先统计步骤102、步骤103、步骤104选中的文章中是否 重复出现,如果重复出现则统计每篇文章重复出现的次数,按每篇文章的重复 出现次数倒序排列,也即,重复出现次数最多的排在最前面,重复出现次数最 少的排在最后面。如果出现重复次数相同的文章,则按上传时间倒序排列,也 即,上传时间最晚的排在最前面,上传时间最早的排在最后面。
机译: 一种基于知识结构的评估多内容的方法,一种使用该方法的设备以及一种利用知识结构推荐内容的方法
机译: 本发明是一种计算机程序/应用程序,其吸收用户输入/数据和输出/草稿/创建一个/任何积极行为支持计划,包括附录在内,符合当前澳大利亚和国际上关于积极行为支持的模型和标准。针对残疾人和/或心理健康问题的以人为本,基于力量的康复框架。本发明旨在从积极行为支持计划,其相应的附录,相应的文档和所有相关实践中消除人为错误。
机译: 基于用户特征的图像推荐方法和装置,基于特征的协同过滤解决新的项目推荐