通过滑动窗口切分和文本向量化技术,结合余弦相似度检索实现了Query中所有实体在知识图谱中的定位和匹配。
假设用户Query像这样:“计算机网络中TCP/IP协议和传输层的关系”
如何切分Query,得到Query中中的知识实体?
一种思路是直接将实体列表通过Prompt提交给模型,但实体列表过大时资源消耗过高,响应延迟。同时,模型的幻觉可能导致匹配到实际上不存在的实体,从而导致错误。
第二种思路是直接对模型进行分词,然后将整个Query向量化并使用余弦相似度或Faiss的其他向量相似度检索方法与实体列表中每一个实体计算相似度。
不幸的是,这种方式的效果非常差。
经过思考,我设计了基于滑动窗口的实体切分和提取方式。首先使用Tokenizer对序列进行Tokenize,然后设置大小为(min,max)的滑动窗口对其中所有Tokens进行滑动切割。
切割出的子序列,与实体列表中的所有实体进行向量化相似度匹配
可能有这样的一个疑惑,会不会匹配到很多模糊的结果?
实际上,我们可以这么考虑,用实体列表中的实体来匹配序列集合&#x