Python算法-优先队列(Priority Queue)

Python022

Python算法-优先队列(Priority Queue),第1张

手写二叉堆实现优先队列

使用heapq模块实现优先队列

内容参考: https://algo.itcharge.cn/04.%E9%98%9F%E5%88%97/03.%E4%BC%98%E5%85%88%E9%98%9F%E5%88%97/01.%E4%BC%98%E5%85%88%E9%98%9F%E5%88%97%E7%9F%A5%E8%AF%86/

python一问一答代码步骤:

1、对问答库进行拆分,将文本分别拆分为问题库和答案库。

2、将问题进行文本处理:循环遍历问题库里每一个问题。对每一个问题进行文本处理:首先加载停用词库,对问题用nltk分词进行小写化、去停用词、数值归一后重新加入到一个问题库,对这个已经处理完的问题库用zipf定律进行词频过滤。对输入的问题进行文本处理。将处理好的问题库词向量化(用qlove或word2vec,包子词向量化是将词向量相加取平均)后计算问题库向量L2范数。将处理好的输入问题词向量化并计算问题向量L2范数。

3、建立一个简单的倒排表。

4、利用倒排表计算问题库词向量和输入问题词向量的余弦相似度。

5、建立优先队列,采用(优先级(余弦相似度),与相似度对应的问题答案下标)(值越小,优先级越大)找出ToD所对应的答案下标。

6、根据找出的答案下标到答案库里遍历打印即可。