获取联想文本计算
<p><strong>涉及参数:</strong></p>
<table>
<thead>
<tr>
<th>参数</th>
<th>用途</th>
</tr>
</thead>
<tbody>
<tr>
<td>target_text</td>
<td>联想文本</td>
</tr>
<tr>
<td>min_similarity</td>
<td>最小相似度 数字为0-1</td>
</tr>
<tr>
<td>number</td>
<td>获取联想文本数量</td>
</tr>
<tr>
<td>doWordCut</td>
<td>是否用结巴切词</td>
</tr>
<tr>
<td>rankMethod</td>
<td>返回数据的方法 score,match,min</td>
</tr>
<tr>
<td>factor</td>
<td>系数</td>
</tr>
</tbody>
</table>
<p><strong>计算逻辑</strong></p>
<ol>
<li>从长到短截取字符串,截取数据由maxAffixNumber控制。如
星球大战————————星球大战、星球大、星球、星</li>
<li>doWordCut如果为True,使用结巴切词,切词后长度从长到倒短排序,去重。然后遍历切词结果,去除特殊符号、和长度小于1的词</li>
<li>affix_roots 去重 排序,从长倒短排序</li>
<li>使用pipeline 一次从redis提取数据 sublist,如果一次提取的文本超过10,使用生成器返回数据数据,每次提取10个文本对应的数据</li>
<li>遍历sublist,计算文本相似度
5.1 过滤掉sublist中第一个列表中相似度小于min_similarity的文本,
5.2 如果sublist第一个列表中剩余文本数量大于number,则结束运行,如果小于number,则计算sublist中下一个列表,直到数量足够或者是sublist遍历完成</li>
</ol>