发明内容
(一)解决的技术问题
本发明的目的是提供一种可互动的影视搜索方法,提高影视搜索结果的准确性。
(二)技术方案
一种可互动的影视搜索方法,包括以下步骤:
S1:根据影视知识库中的信息,从影视库中抽取影视全文索引数据,所述影视库存储专辑信息,所述专辑为视频的集合,所述影视知识库包括影视名称库、影视人名库和中文关键词库,所述影视全文索引数据包括:影视名称、影视人名或影视分类;
S2:根据影视库中的信息和影视特征专家库中的信息将影视库中的影视片段生成影视片段剧集库,所述影视特征专家库存储影视信息,所述影视信息包括:影视名称、影视长度、影视格式和影视码流,所述影视片段剧集库存储以集或部为单位的影视片段;
S3:分析用户查询条件,分解为多条件的组合查询,综合全文索引数据的查询结果和影视片段剧集库中的信息,并进行优化和排序,并将生成最后的查询结果返回给用户。
其中,所述步骤S2包括:
根据影视名称,找到影视库中匹配的专辑;
根据影视特征专家库中的信息对专辑中的视频逐一进行检查,判断它们是否为影视片段,以及是否应该和前一片段进行合并;
若是,则合并影视片段,将所述影视片段存储在影视片段剧集库中,并形成一个以按集或部为单位的片段描述。
其中,所述方法还包括对视频自动评分的步骤,根据用户行为日志对影视库中的视频进行评分,所述评分作为步骤S3中的优化和排序的依据。
其中,所述方法还包括影视特征专家库自动更新的步骤:分析用户行为日志中的视频播放信息,设定播放信息重复量的阀值,收集超过阀值的视频的影视信息,并将所述影视信息载入专家库。
其中,所述方法还包括影视名称识别步骤,包括:
按所述阈值查找到用户行为日志中的查询关键词和影视信息;
根据关键词或影视信息找到相应的专辑,基于影视特征专家库的影视信息对影视库专辑中的视频逐一进行检查,判断所述视频是否为影视片段;
若是影视片段,将完全匹配的影视名称添加到影视名称库中,将相关人名添加到影视人名库中。
一种可互动的影视搜索系统,包括:
全文索引数据生成模块,用于根据影视知识库,从影视库中抽取影视全文索引数据,所述影视库存储专辑信息,所述专辑为视频的集合,所述影视知识库包括影视名称库、影视人名库和中文关键词库,所述影视全文索引数据包括:影视名称、影视人名或中文关键词;
影视片段剧集库生成模块,用于根据影视库和影视特征专家库将影视库中的影视片段生成影视片段剧集库,所述影视特征专家库存储影视信息,所述影视信息包括:影视名称、影视长度、影视格式和影视码流,所述影视片段剧集库存储以集或部为单位的影视片段;
用户查询模块,用于分析用户查询条件,分解为多条件的组合查询,综合全文索引数据的查询结果和影视片段剧集库中的信息,并进行优化和排序,并将生成最后的查询结果返回给用户。
其中,所述影视片段剧集库生成模块包括:
专辑查找模块,用于根据影视名称,找到影视库中匹配的专辑;
影视片段判断及合并模块,用于根据影视特征专家库对专辑中的视频逐一进行检查,判断它们是否为影视片段,以及是否应该和前一片段进行合并;
影视片段合并模块,用于合并影视片段,将所述影视片段存储在影视片段剧集库中,并形成一个以按集或部为单位的片段描述。
其中,所述系统还包括:
自动评分模块,用于根据用户行为日志对影视库中的视频进行评分,所述评分作为用户查询模块中的优化和排序的依据。
其中,所述系统还包括:
影视特征专家库自动更新模块,用于分析用户行为日志中的视频播放信息,设定播放信息重复量的阀值,收集超过阀值的视频的影视信息,并将所述影视信息载入专家库。
其中,所述系统还包括影视名称识别模块,其中包括:
用户行为日志查询模块,用于按所述阈值查找到用户行为日志中的查询关键词和影视信息;
影视片段判断模块,用于根据关键词或影视信息找到相应的专辑,基于影视特征专家库的影视信息对影视库专辑中的视频逐一进行检查,判断所述视频是否为影视片段;
影视名称库添加模块,若是影视片段,用于将完全匹配的影视名称添加到影视名称库中,并将相关人名添加到影视人名库中。
(三)有益效果
本发明实现了影视名称的自动识别、自动生成影视片段剧集和自动评分等功能,并且编辑人员和管理人员可对影视库、影视知识库和影视特征专家库进行实时维护,用户的查询行为和视频播放行为被记录在用户行为日志中。这使得用户查询更准确。
具体实施方式
本发明提出的可互动的影视搜索方法,结合附图和实施例说明如下。
如图1所示,为本发明方法的流程图,步骤S101中根据影视知识库,从影视库中抽取影视全文索引数据,其中,影视库存储专辑信息,该专辑为视频的集合;其中,影视知识库包括影视名称库、影视人名库和中文关键词库,该影视全文索引数据包括:影视名称、影视人名或中文关键词。由于参考了影视知识库,使得生成全文索引数据中的关键词结构更准确。
步骤S102中根据影视库和影视特征专家库将影视库中的影视片段生成影视片段剧集库,所述影视特征专家库存储影视信息,所述影视信息包括:影视名称、影视长度、影视格式和影视码流,所述影视片段剧集库存储以集或部为单位的影视片段。具体地,包括以下步骤:根据影视名称,找到影视库中匹配的专辑;根据影视特征专家库对专辑中的视频逐一进行检查,判断它们是否为影视片段,以及是否应该和前一片段进行合并,判断时可采用通用的文档相似度查询方法来完成;若是,则合并影视片段,将所述影视片段存储在影视片段剧集库中,并形成一个以按集或部为单位的片段描述。例如:影视库中包括“一生为奴”的片段,有“一生为奴01”、“一生为奴02a”、“一生为奴02b”、“一生为奴03”,经过整理存入影视片段剧集库的内容,将“一生为奴02a”、“一生为奴02b”和合并为“一生为奴02”,结果为“一生为奴01”、“一生为奴02”、“一生为奴03”,其中“一生为奴02”包含2个子片段。这样的格式更直观,更容易被用户接受。其中,文档相似度查询方法基于一种公共方法,该方法为:
查询文档q相对于文档d的分数与在文档和查询向量之间的余弦距离或者点乘积有关系,文档和查询向量存于一个信息检索的向量空间模型之中。一篇文档的向量与查询向量越接近,它的得分也越高,这个分数按如下公式计算:
其中:
1、tf与term的出现次数有关系,定义为term t在当前算分的文档d中出现的次数。对一个给定的term,那些出现此term的次数越多的文档将获得越高的分数。缺省的tf算法实现在DefaultSimilarity类中,公式如下:
2、idf(t)代表反转文档频率。这个分数与反转的docFreq(出现过term t的文档数目)有关系。这个分数的意义是越不常出现的term将为最后的总分贡献更多的分数。缺省idf(t_in_d)算法实现在DefaultSimilarity类中,公式如下:
3、coord(q,d)是一个评分因子,基于有多少个查询terms在特定的文档中被找到。通常,一篇包含了越多的查询terms的文档将比另一篇包含更少查询terms的文档获得更高的分数。这是一个搜索时的因子,是在搜索的时候起作用,它在Similarity对象的coord(q,d)函数中计算。
4、queryNorm(q)是一个修正因子(normalizing factor),用来使不同查询间的分数更可比较。这个因子不影响文档的排名(因为搜索排好序的文档会增加相同的因数),更确切地说只是为了尝试使得不同查询条件(甚至不同索引)之间更可比较性。这是一个搜索时的因子是在搜索的时候起作用,由Similarity对象计算。缺省queryNorm(q)算法实现在DefaultSimilarity类中,公式如下:
sumOfSquaredWeights(查询的terms)是由查询Weight对象计算的,例如一个布尔条件查询的计算公式为:
5、t.getBoost()是一个搜索时的代表查询q中的term t的boost数值,具体指定在查询的文本中(参见查询语法),或者由应用程序调用setBoost()来指定。需要注意的是实际上没有一个直接的API来访问一个多个term的查询中的一个term的boost值,更确切地说多个terms在一个查询里的表示形式是多个TermQuery对象,所以查询里的一个term的boost值的访问是通过调用子查询(sub-query)的getBoost()方法实现的。
6、norm(t,d)是提炼取得一小部分boost值(在索引时间)和长度因子(length factor):
document boost在添加文档到索引之前通过调用doc.setBoost()来设置。
Field boost在添加Field到文档之前通过调用field.setBoost()来设置。
lengthNorm(field)在文档添加到索引的时候,根据文档中该field的tokens数目计算得出,所以更短的field会贡献更多的分数。lengthNorm是在索引的时候起作用,由Similarity类计算得出。
当一篇文档被添加到索引的时候,所有上面计算出的因子将相乘起来。如果文档拥有多个相同名字的fields,所有这些fields的boost值也会被一起相乘起来:
然而norm数值的结果在被存储之前被编码成一个单独的字节。在检索的时候,这个norm字节值从索引目录中读取出来,并解码回一个norm浮点数值。这个编/解码行为,会缩减索引的大小,这得自于精度损耗的代价,它不保证decode(encode(x))=x,举例来说decode(encode(0.89))=0.75。还有需要注意的是,检索的时候再修改评分的这个norm部分已近太迟了,例如,为检索使用不同的Similarity。
步骤S103中分析用户查询条件,分解为多条件的组合查询,综合全文索引数据的查询结果和影视片段剧集库中的信息,并进行优化和排序,并将生成最后的查询结果返回给用户。
步骤S104中对影视库中的视频进行自动评分,其原理是通过分析用户行为日志(主要包括:用户查询日志和用户播放日志)得到用户查询的次数、用户播放视频的次数、播放的时长和播放的流畅度信息,根据上述信息对视频作出一个综合评分,该评分作为S103中对结果优化和排序的依据。评分算法是将上述的四个参数,即用户查询的次数、用户播放视频的次数、播放的时长和播放的流畅度分别映射到N(N为整数)个级别,并且四个参数有一个权重值,据此计算出一个和值,仅当该值与旧值变化大于一定范围,才设置新的评分值。四个参数值映射到N个级别的算法,是系统维护人员根据对数据统计的结果给出的划分标准。四个参数的权重值也由系统维护人员设定。
步骤S105中识别影视名称,基于影视特征专家库,挖掘用户查询日志和用户播放日志,自动识别影视名称。影视特征专家库中的影视信息来源于权威或热门的视频服务网站(如时光网,MOV6等等),通过查询用户本地播放日志,并不断积累新的记录,达到提高影视资源特征信息识别的准确性。主要方法是:分析播放日志中的播放信息,设定播放信息重复量的阀值,超过阀值的,通过权威、热门网站收集、确定影视信息,并将收集、确定的影视信息不断载入专家库。基于影视特征专家库识别的方法包括以下步骤:
按上述阈值查找到用户行为日志中的查询关键词和影视信息;
根据关键词或影视信息找到相应的专辑,基于影视特征专家库的影视信息对影视库专辑中的视频逐一进行检查,判断所述视频是否为影视片段;
若是影视片段,将完全匹配的影视名称添加到影视名称库中,将相关人名添加到影视人名库中。
步骤S 106中编辑人员可对影视库、影视名称库、影视人名库等进行维护,管理人员可对中文词库、影视特征专家库等数据等进行维护。还包括将用户行为(查询行为和播放行为)存储到用户行为日志中。
一种可互动的影视搜索系统,包括:全文索引数据生成模块,用于根据影视知识库,从影视库中抽取影视全文索引数据,所述影视库存储专辑信息,所述专辑为视频的集合,所述影视知识库包括影视名称库、影视人名库和中文关键词库,所述影视全文索引数据包括:影视名称、影视人名或中文关键词;影视片段剧集库生成模块,用于根据影视库和影视特征专家库将影视库中的影视片段生成影视片段剧集库,所述影视特征专家库存储影视信息,所述影视信息包括:影视名称、影视长度、影视格式和影视码流,所述影视片段剧集库存储以集或部为单位的影视片段;用户查询模块,用于分析用户查询条件,分解为多条件的组合查询,综合全文索引数据的查询结果和影视片段剧集库中的信息,并进行优化和排序,并将生成最后的查询结果返回给用户。
其中,所述影视片段剧集库生成模块包括:
专辑查找模块,用于根据影视名称,找到影视库中匹配的专辑;影视片段判断及合并模块,用于根据影视特征专家库对专辑中的视频逐一进行检查,判断它们是否为影视片段,以及是否应该和前一片段进行合并;影视片段合并模块,用于合并影视片段,将所述影视片段存储在影视片段剧集库中,并形成一个以按集或部为单位的片段描述。
其中,所述系统还包括:
自动评分模块,用于根据用户行为日志对影视库中的视频进行评分,所述评分作为用户查询模块中的优化和排序的依据。
其中,所述系统还包括:
影视特征专家库自动更新模块,用于分析用户行为日志中的视频播放信息,设定播放信息重复量的阀值,收集超过阀值的视频的影视信息,并将所述影视信息载入专家库。
其中,所述系统还包括影视名称识别模块,其中包括:
用户行为日志查询模块,用于按所述阈值查找到用户行为日志中的查询关键词和影视信息;影视片段判断模块,用于根据关键词或影视信息找到相应的专辑,基于影视特征专家库的影视信息对影视库专辑中的视频逐一进行检查,判断所述视频是否为影视片段;影视名称库添加模块,若是影视片段,用于将完全匹配的影视名称添加到影视名称库中,并将相关人名添加到影视人名库中。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。