详细内容或原文请订阅后点击阅览
RAG 中的嘈杂文本:拼写错误、OCR 和经典拼写检查留下的间隙
企业文档智能 [Vol.1 #B1] - 一个问题的三个根源。用户打字错误、快速打字转录噪音、OCR 字符错误。经典的拼写检查可以处理其中之一。嵌入带来其余的 RAG 中的嘈杂文本:打字错误、OCR 和 Gap 经典拼写检查叶子首先出现在《走向数据科学》上。
来源:走向数据科学用户输入“assurance décénale”,文档显示“décennale”。缺少一个字母,文字搜索什么也找不到。真正的问题会出现拼写错误,真正的文档也有自己的拼写错误。在检索可以匹配任何内容之前,必须有人修复两侧的拼写。
本文是企业文档智能系列中的一个额外内容,该系列使用四块砖构建企业 RAG 系统。它可以解决整个管道中的嘈杂文本:用户打字错误、快速打字转录噪音、OCR 字符错误、经典拼写检查修复以及嵌入必须携带的内容。
🧭该系列的新手?本系列中的每篇文章都位于我们的两个走向数据科学作者页面,Angela Shi 和 Kezhan Shi。这是查看所覆盖内容和所在位置的最短方法。
📓可运行的配套笔记本位于 GitHub 上:doc-intel/notebooks-vol1。
同样的问题出现在管道的两侧。在问题方面,在基于公司知识库构建的聊天机器人中输入“wat is the covarge for fyre damge?”:三个拼写错误和一个缺失的字母,聊天机器人不会返回任何有用的信息,直到仔细重新输入问题。在文档方面,将 50,000 个客户支持票证转储到同一管道中进行检索:其中一半是用片段、缩写、混合大小写编写的,具有相同类型的错误,并且针对干净文档进行干净查询的管道开始返回噪音。
1. 经典拼写纠正四十年
在嵌入和法学硕士之前,拼写纠正是一个已解决的工程问题。五种技术涵盖了 1980 年至今生产环境中运行的大部分内容,所有技术都具有成熟的 Python 库(rapidfuzz、jellyfish、symspellpy、pybktree)。接下来的小节将逐一介绍,然后以该工具箱解决问题的情况结束。
1.1 编辑距离
1.2 BK树
import pybktreetree = pybktree.BKTree(Levenshtein.distance,["覆盖范围", "平均", "超额", "杠杆"])tree.find("cverage", n=1) # [(1, '覆盖范围')]
