可以先看一看检索式问答的综述,《检索式问答综述》,这篇是实战,直接上代码。
准备工作
- 数据集:wangrui6/Zhihu-KOL,包含10w条知乎通用问答数据,以下是两个示例:
INSTRUCTION (string) | RESPONSE (string) |
---|---|
从北大光华读完MBA的人都去了哪里工作? | 这里我们根据北大光华的数据给大家分析一下。 |
Python3中如何得到Unicode码对应的中文? | "看的头晕啊!编码真是把人绕晕了啊!" |
- 模型:哈工大的一个中文BERThfl/chinese-macbert-base
分析
可以根据要问的问题和知识库里的句子计算相似度进行答案的搜索,但这要求需要有成对的相似句子对作为训练数据集。这需要每个文法都需要有至少两个以上的句子,这很不现实。所以在实际中,可以直接计算问题和答案之间的相似度,以此来完成答案的索引。
代码实现
模型训练
利用问答对训练一个文本相似度计算模型用做编码器
这部分和之前的文章是一样的,可以参考文本相似度匹配中问题2的代码
存储数据
利用上一步训练来的编码器,编码问答库数据,并存进向量数据库
评论区