新Alpha前端页面


一级标题计算流程

<p><strong>获取一级联想文本</strong></p> <ol> <li>实例化TextAssociateIterator</li> <li>循环ta.getIterator(max_stage=4) 最多退化4次,边收集和边去重文本,直到满足前端需求。 getIterator 迭代键的顺序是按照[u'middle', u'prefix', u'short', u'long']这个顺序进行遍历</li> </ol> <p><strong>getAssociatedText工作流程</strong></p> <ol> <li>文本长度大于1 小于等于15 1.1 如果退化步数为1,则进入前缀词联想 1.1.1 获取前缀词key,如果key对应文本数量大于0,则返回key,否则返回None 1.2 如果前缀词根无法获取数据 1.2.1 短文本切词 1.2.2 中文本切词 1.2.3 长文本切词</li> <li>文本长度大于1 小于15 1.1 如果退化步数为1,且文本长度少于等于4,则进入前缀词联想 1.2 短文本切词 1.3 中文本切词 1.4 长文本切词</li> <li>文本长度大于15 2.1 中文本切词 2.2 长文本切词</li> <li>返回结果 <pre><code>{ 'long':[ {u'total': 38, u'type': u'set', u'name': u'Associate:Text:Long:刘德华,成龙:Set', u'weight': 2103, u'math_txt': {u'刘德华': 915, u'成龙': 1188}} } ] }</code></pre></li> </ol> <p>短/中/长文本切词</p> <ol> <li>先把用户输入的文本切词,使用结巴切词,过滤掉词根不为中英文,过滤掉词根长度为1时,且占总长为小于0.2,词根按照从长到短排序,进行截取。</li> <li>获取到词根后,提取每个词根对应文本数量作为权重,然后过滤掉权重为0的词根。再从小到大排序,取前5个词根</li> <li>根据词根,按照退化的步数进行词根组合。组合数量由词根的数量决定。然后根据组合的权重(所有词根的权重相加),从小到大排序。得到列表sorted_li。 比如当前退化步数为1,词根数量为5个,每个组合词根数为5,那么组合数量就只有1个。 当前退化步数为2,词根数量为5个,每个组合词根数为4,那么组合数量为5个。</li> <li>遍历词根组合sorted_li,分别获取词根对应的redis键,然后进行求交集,通过交集查看是否有没有匹配的文本,如果没有返回空字典,如果有返回键名,对应的文本数量,这个redis键的数据类型。</li> <li>汇总数据返回结果</li> </ol>

页面列表

ITEM_HTML