以下是关于计算两个文本相似度的代码实现相关内容:
在文本处理中,文本会先转为 tokens,再转为向量,然后放到计算机中运算以找出规律。在文本转为向量后,可以通过欧式距离或 cosin 角度来计算两个文本之间的相似性。例如,使用 SBERT 算法时,对于描述主体相同的情况(如屏幕相关的描述)会设为高相似性。文本统计单位“1”通常是以二级类别来衡量,比如屏幕模糊,它包括画面模糊、边缘模糊、文本模糊等细分情况。若要统计三级类别,目前多采用人工统计。同时,文本统计单位“1”是一个 clustering 概念,因为在向量空间中难以找到完全相同的两个单位,更多是距离较近的单位,所以统计通常以 clustering 计算。
另外,在初级菜鸟学 Langchain 实录中,对于文本相似度检索过程,包括读入文字、进行文字清洗、文本句子切分、文本向量化、计算相似度以及取前几的答案等步骤,详情可见 https://github.com/yuanzhoulvpi2017/DocumentSearch 。
本段介绍文本挖掘的底层思考。1.在文本世界,文本会转为tokens,再转为向量,放到计算机里面运算,找出规律(model)。1.在文本转为向量后,通过欧式距离或cosin角度计算两个文本之间的相似性。下图是是将向量通过主成分分析降维到2维空间,看到文本聚类效果。1.文本单位定义1.1.以屏幕显示质量和设备兼容性在二维分布为例,属于两个不同的clustering(类别)。1.2.假如我们统计屏幕边缘模糊,在使用SBERT算法时,会将屏幕色彩艳丽,文本模糊等设为高相似性,因为他们都在描述(主体:屏幕)+(形容词)。所以我们不能将三级类目作为文本统计项,即定义为基本单位“1”。1.3.文本基本单位“1”是以二级类别来衡量,即屏幕模糊。它包括画面模糊、边缘模糊、文本模糊等细分情况。若真的需要统计三级类别情况,目前只能人工统计。1.4.声明:屏幕模糊是极少部分用户个案,XREAL屏幕质量比其他厂商好。文本统计单位“1”是一个clustering概念,因为向量空间难以找到100%一样的两个单位,更多距离更近的单位,所以统计以clustering计算。
本段介绍文本挖掘的底层思考。1.在文本世界,文本会转为tokens,再转为向量,放到计算机里面运算,找出规律(model)。1.在文本转为向量后,通过欧式距离或cosin角度计算两个文本之间的相似性。下图是是将向量通过主成分分析降维到2维空间,看到文本聚类效果。1.文本单位定义1.1.以屏幕显示质量和设备兼容性在二维分布为例,属于两个不同的clustering(类别)。1.2.假如我们统计屏幕边缘模糊,在使用SBERT算法时,会将屏幕色彩艳丽,文本模糊等设为高相似性,因为他们都在描述(主体:屏幕)+(形容词)。所以我们不能将三级类目作为文本统计项,即定义为基本单位“1”。1.3.文本基本单位“1”是以二级类别来衡量,即屏幕模糊。它包括画面模糊、边缘模糊、文本模糊等细分情况。若真的需要统计三级类别情况,目前只能人工统计。1.4.声明:屏幕模糊是极少部分用户个案,XREAL屏幕质量比其他厂商好。文本统计单位“1”是一个clustering概念,因为向量空间难以找到100%一样的两个单位,更多距离更近的单位,所以统计以clustering计算。
这里就讲简单的retrieve的过程。[heading4]Table表格[heading5]方法1:读入表格markdown格式,嵌入template。[content]这里举例为GLM的例子,Azure openai同理。[heading5]方法2:直接使用function call。[content]绕过langchain定义数据库读取的方式。这里我只尝试了GLM的官方方法。这里的parse_function_call是GLM的SDK开放的工具。我的理解是大模型从用户输入的语言提炼出函数所需的参数变量然后进行传参完成数据库查询。[heading4]Text文字[heading5]文字相似度检索过程[content]读入文字,进行文字清洗-->文本句子切分-->文本向量化->计算相似度-->取前几的答案为输入详情见https://github.com/yuanzhoulvpi2017/DocumentSearch脚本简单易懂,不再赘述。Part1不用学习框架,快速实现。氮素过于简单,写得太死,不利于后期持续开发,如果有好的方法尝试基本重开【正常人开发都不会这样的。。除非很紧急没空看文档】[heading3]Part2用Langchain做table和text的RAG[heading4]Table表格[heading5]法1:运用Agent:[heading5]法2:运用Chain:[heading4]Text文字[content]RetrievalQA.from_chain_type[heading3]Part3使用Agent把文本多种文档组合起来![content]这里只示范文本和数据库表格等等,别的我觉得就是差不多类似的写法!主要用chain。Agent套来套去也可以,就是容易眼花。。[heading3]最后[content]https://gitee.com/cyz6668/langchain-simple-rag整理好了,欢迎踩踩