关联快照计算逻辑
<h3>新版关联快照计算逻辑</h3>
<h4>关联快照计算逻辑</h4>
<p>时间、数值属于有序概念下位概念</p>
<ol>
<li>对象的概念属于时间、数值、地点、抽象词的下位概念。不对relation_stat进行加工计算缓存对象</li>
<li>对象的概念不属于命名概念下位概念,不对relation_stat进行加工计算缓存对象
<del>3. 对象的概念属于文章、视频、图集的下位概念或者是front_type等于article,image_object。只提取relation_stat中peers的数据行加工计算缓存对象</del></li>
<li>以上判断都不是的对象,则从relation_stat行加工计算缓存对象。</li>
<li>所有对象都需要判断是否有上级对象,如果有上级对象,则添加到relation_snapshot</li>
</ol>
<p><strong>上级对象belong_object的定义:</strong>
上级对象:如果一个对象隶属于另外一个对象,那么隶属对象B一定是缓存对象。刘德华隶属于香港,那么香港是刘德华的缓存。</p>
<h4>从relation_stat中提取数据计算逻辑</h4>
<p>一. relation_stat中peers计算逻辑</p>
<ol>
<li>检查peers中关联数超过1000,且至少有3个概念,每个概念关联数超过200,则没有缓存对象(relation_snapshot)</li>
<li>从peers提取关联强度大于0.02的概念,如果关联强度大于0.02的概念数量等于0,则忽略这一个条件。(为了提升速度而加筛选条件)</li>
<li>把挑选出peers概念按照关联强度进行从高到底排序,选取x个概念,每个概念最多选取y个对象,存放如一个大列表。计算调整权重,在从高到底排序,取前5个。</li>
</ol>
<p><strong>调整权重公式:</strong>
对象x本身的权重 / 对象x所在概念的总关联数量
如:刘德华和电影概念有15个关联, 其中电影概念下对象——扫毒2 对象权重为100 那么调整权重公式为:100/15</p>
<p>二. relation_stat其他计算
relation_stat中文章,视频,音频,图集,compressor 不能作为缓存对象
relation_stat中时间、地点、数值 每个概念取一个对象作为缓存对象</p>
<p>三. 检查对象是否有上级对象
如果有上级对象,则添加到缓存对象中</p>
<h3>老版关联快照计算逻辑</h3>
<h4>关联快照计算逻辑</h4>
<p>时间、数值属于有序概念下位概念</p>
<ol>
<li>对象的概念属于时间、数值、地点、抽象词的下位概念。不对relation_stat进行计算,只判断对象是否有上级对象,如果有添加到relation_snapshot</li>
<li>对象的概念属于文章、视频、图集的下位概念。只提取relation_stat中peers的数据进行计算,计算调整权重,把计算的结果从高到底排序取前五个,然后再计算对象的上级对象。</li>
<li>对象的概念不属于命名概念下位概念,不对relation_stat进行计算,只判断对象是否有上级对象,如果有添加到relation_snapshot</li>
<li>以上判断都不是的对象,则从relation_stat中提取数据计算。
<strong>注意:</strong>
上级对象:如果一个对象隶属于另外一个对象,那么隶属对象B一定是缓存对象。刘德华隶属于香港,那么香港是刘德华的缓存。</li>
</ol>
<h4>从relation_stat中提取数据计算逻辑</h4>
<p>一. relation_stat中peers计算逻辑</p>
<ol>
<li>检查peers中关联数超过1000,且至少有3个概念,每个概念关联数超过200,则没有缓存对象(relation_snapshot)</li>
<li>从peers概念中,按照概念的关联强度排序,选取x个概念,每个概念最多选取y个对象,存放如一个大列表。计算调整权重,在排序,取前5个。</li>
</ol>
<p><strong>调整权重公式:</strong>
对象x本身的权重 / 对象x所在概念的总关联数量
如:刘德华和电影概念有15个关联, 其中电影概念下对象——扫毒2 对象权重为100 那么调整权重公式为:100/15</p>
<p>二. relation_stat其他计算
relation_stat中文章,视频,音频,图集,compressor 不能作为缓存对象
relation_stat中时间、地点、数值 每个概念取一个对象作为缓存对象</p>
<p>三. 检查对象是否有上级对象
如果有上级对象,则添加到缓存对象中</p>
<h4>relation_stat计算</h4>
<p>1.调用函数CategorizeObjectDimensions(obj.obj_key, minConnStr=None, cat_peer=True, max_number=20)
from SearchAndRecommentdation.GeneralSearch.SearchBasicFunctions import CategorizeObjectDimensions</p>
<p>CategorizeObjectDimensions工作流程</p>
<ol>
<li>获取与obj_key有关联的概念实际数据, 得到数据rel_obj_numbers {'概念名':'有关联的对象数量'}</li>
<li>通过CategorizeRelatedConceptDimensions() 获取到obj_key对应的概念有关联的概念列表,通过根据概念的front_type,将概念进行分组分别放入 rel_concept_dims的peers/times/locations/numbers/videos/articles/</li>
<li>将rel_obj_numbers和rel_concept_dims 有交集概念写入到enhanced_result</li>
<li>通过概念fron_type吧rel_obj_numbers剩余的概念分别判断是否是数值、时间、地点、视频、文章下位概念,分别放入enhanced_result的peers/times/locations/numbers/videos/articles/</li>
<li>返回enhanced_result</li>
</ol>