主要内容

bm25Similarity

与BM25算法文档相似之处

描述

使用bm25Similarity计算文档相似之处。

默认情况下,这个函数计算BM25相似之处。计算BM11、BM15或BM25 +相似,使用“DocumentLengthScaling”“DocumentLengthCorrection”参数。

例子

相似之处= bm25Similarity (文档)返回成对BM25相似之处指定的文件。的分数相似性(i, j)代表之间的相似性文档(我)文档(j)

例子

相似之处= bm25Similarity (文档,查询)返回相似之处文档查询。的分数相似性(i, j)代表之间的相似性文档(我)查询(j)

例子

相似之处= bm25Similarity ()返回指定的文档编码的相似性bag-of-words或bag-of-n-grams模型。的分数相似性(i, j)代表之间的相似性th和jth编码的文件

相似之处= bm25Similarity (,查询)返回文档之间的相似之处由bag-of-words或bag-of-n-grams编码模型和指定的文件查询。的分数相似性(i, j)代表之间的相似性th文档编码,查询(j)

例子

相似之处= bm25Similarity (___,名称,值)使用一个或多个指定附加选项名称-值对参数。例如,使用BM25 +算法,设置“DocumentLengthCorrection”选择一个非零值。

例子

全部折叠

创建一个数组的标记化的文档。

textData = [“那只敏捷的棕色狐狸跳过了懒惰的狗”“快”的棕色狐狸跳过了懒惰的狗“懒惰的狗坐在那里,什么也没做”“其他动物坐在那里看”];文件= tokenizedDocument (textData)
文件= 4 x1 tokenizedDocument: 9令牌:那只敏捷的棕色狐狸跳过了懒惰的狗9令牌:快速的棕色狐狸跳过了懒惰的狗8令牌:懒惰的狗坐在那里,没有6令牌:其他动物坐在那里看

计算它们之间的相似之处使用bm25Similarity函数。输出是一个稀疏矩阵。

相似性= bm25Similarity(文件);

可视化热图中的文档的相似之处。

图的热图(相似性);包含(“文档”)ylabel (“文档”)标题(“BM25相似之处”)

图包含一个类型的对象的热图。类型的热图的图表标题BM25相似之处。

前三个文件成对相似性最高,表明这些文档是最相似的。过去的文档已经成对相似性相对较低的其他文件表明,本文档不像其他文档。

创建一个数组的输入文档。

str = [“那只敏捷的棕色狐狸跳过了懒惰的狗”“快”狐狸跳过了懒惰的狗“狗坐在那里,什么也没做”“其他动物坐在那里看”];文件= tokenizedDocument (str)
文件= 4 x1 tokenizedDocument: 9令牌:那只敏捷的棕色狐狸跳过了懒惰的狗8令牌:快速狐狸跳过了懒惰的狗7令牌:狗坐在那儿没有6令牌:其他动物坐在那里看

查询文件的创建一个数组。

str = [“一个的棕色狐狸跳过了懒惰的狗”“另一个狐狸跃过狗”];查询= tokenizedDocument (str)
查询= 2 x1 tokenizedDocument: 8令牌:棕色狐狸跳过了懒惰的狗6令牌:另一个狐狸跃过那条狗

计算使用的输入文档和查询文档之间的相似之处bm25Similarity函数。输出是一个稀疏矩阵。的分数相似性(i, j)代表之间的相似性文档(我)查询(j)

相似性= bm25Similarity(文档、查询);

可视化热图中的文档的相似之处。

图的热图(相似性);包含(“查询文档”)ylabel (“输入文件”)标题(“BM25相似之处”)

图包含一个类型的对象的热图。类型的热图的图表标题BM25相似之处。

在这种情况下,第一个输入文档是最喜欢第一个查询文档。

创建一个bag-of-words模型的文本数据sonnets.csv

文件名=“sonnets.csv”;台= readtable(文件名,“TextType”,“字符串”);textData = tbl.Sonnet;文件= tokenizedDocument (textData);袋= bagOfWords(文档)
袋= bagOfWords属性:计数:[154 x3527双]词汇:“从”“公平”“生物”“我们”…]NumWords: 3527 NumDocuments: 154

十四行诗使用计算相似性bm25Similarity函数。输出是一个稀疏矩阵。

相似性= bm25Similarity(袋);

可视化前五个文档之间的相似之处热图。

图的热图(相似性(1:5,1:5));包含(“文档”)ylabel (“文档”)标题(“BM25相似之处”)

图包含一个类型的对象的热图。类型的热图的图表标题BM25相似之处。

BM25 +算法地址BM25算法的局限性:组件term-frequency规范化的文档长度不正确的下界。由于这个限制,长文档不匹配查询词往往被BM25得分不公平有相似的相关性较短的文档不包含查询词。

BM25 +地址这个限制通过使用一个文档长度修正系数(的值“DocumentLengthScaling”名称-值对)。这个因素阻止算法over-penalizing长文档。

创建两个数组标记化的文档。

textData1 = [“那只敏捷的棕色狐狸跳过了懒惰的狗”“快”狐狸跳过了懒惰的狗“狗坐在那里,什么也没做”“其他动物坐在那里看”];documents1 = tokenizedDocument (textData1)
documents1 = 4 x1 tokenizedDocument: 9令牌:那只敏捷的棕色狐狸跳过了懒惰的狗8令牌:快速狐狸跳过了懒惰的狗7令牌:狗坐在那儿没有6令牌:其他动物坐在那里看
textData2 = [“一个的棕色狐狸跳过了懒惰的狗”“另一个狐狸跃过狗”];documents2 = tokenizedDocument (textData2)
documents2 = 2 x1 tokenizedDocument: 8令牌:棕色狐狸跳过了懒惰的狗6令牌:另一个狐狸跃过那条狗

计算BM25 +文档相似,使用bm25Similarity功能和设置“DocumentLengthCorrection”选择一个非零值。在这种情况下,设置“DocumentLengthCorrection”选项1。

相似性= bm25Similarity (documents1 documents2,“DocumentLengthCorrection”1);

可视化热图中的文档的相似之处。

图的热图(相似性);包含(“查询”)ylabel (“文档”)标题(“BM25 +相似之处”)

图包含一个类型的对象的热图。类型的热图的图表标题BM25 +相似之处。

相比,这里的例子文档之间的相似度分数显示,更多的输入文档之间的相似度和第一个查询文档。

输入参数

全部折叠

输入文件,指定为一个tokenizedDocument数组,字符串数组的话,或一个细胞的特征向量。如果文档不是一个tokenizedDocument数组,那么它必须是一个行向量代表一个文档,其中每个元素是一个词。指定多个文档,使用tokenizedDocument数组中。

输入bag-of-words或bag-of-n-grams模型,指定为一个bagOfWords对象或一个bagOfNgrams对象。如果是一个bagOfNgrams函数对象,然后将每个语法视为一个字。

设置查询的文件,指定为以下之一:

  • 一个tokenizedDocument数组

  • 一个bagOfWordsbagOfNgrams对象

  • 1 -N代表一个文档字符串数组,其中每个元素是一个词

  • 1 -N单元阵列特征向量代表一个文档,其中每个元素是一个词

计算词频率和逆文档频率统计信息、编码的函数查询使用bag-of-words模型。模型的使用取决于你叫它的语法。如果你的语法指定输入参数文档,那么它使用bagOfWords(文档)。如果你的语法指定,那么它使用

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:bm25Similarity(文档、“TFScaling”1.5)返回指定文件和设置成对相似性牌频率比例因子为1.5。

方法来计算逆文档频率因子,指定为逗号分隔组成的“IDFWeight”和下列之一:

  • “textrank”——使用TextRank IDF权重[2]。对于每个术语,以色列国防军的因素

    • 日志((N-NT + 0.5) /(0.5元+))如果这个词出现在超过一半的文件,N在输入数据和文档的数量吗NT文档的数量是包含每一项的输入数据。

    • IDFCorrection * avgIDF如果这个词出现在一半的文档或favgIDF是平均IDF的令牌。

  • “classic-bm25”——对于每一项,设置IDF的因素日志((N-NT + 0.5) /(0.5元+))

  • “正常”——对于每一项,设置IDF的因素日志(N /元)

  • “一元”——对于每一项,设置IDF因素1。

  • “顺利”——对于每一项,设置IDF的因素日志(1 + N /元)

  • “马克斯”——对于每一项,设置IDF的因素日志(1 +马克斯(NT) /元)

  • “概率”——对于每一项,设置IDF的因素日志((N-NT) /元)

在哪里N在输入数据和文档的数量吗NT文档的数量是包含每一项的输入数据。

词频率比例因子,指定为逗号分隔组成的“TFScaling”和一个负的标量。

这个选项对应的值k在BM25算法。有关更多信息,请参见BM25

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

文档长度比例因子,指定为逗号分隔组成的“DocumentLengthScaling”和一个标量范围[0,1]。

这个选项对应的值b在BM25算法。当b = 1,相当于BM11 BM25算法。当b = 0,相当于BM15 BM25算法。有关更多信息,请参见BM11,BM15,或BM25

数据类型:

逆文档频率校正因子,指定为逗号分隔组成的“IDFCorrection”和一个负的标量。

此选项仅适用于当“IDFWeight”“textrank”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

文档长度修正系数,指定为逗号分隔组成的“DocumentLengthCorrection”和一个负的标量。

这个选项对应的值 δ 在BM25 +算法。如果文档长度修正系数是零,那么bm25Similarity函数使用BM25 +算法。否则,该函数使用BM25算法。有关更多信息,请参见BM25 +

数据类型:

输出参数

全部折叠

BM25相似性分数,返回稀疏矩阵:

  • 给定一个数组标记化的文件,相似之处是一个N——- - - - - -N非对称矩阵,相似性(i, j)代表之间的相似性文档(我)文档(j),N是输入文档的数量。

  • 给定一组标记化的文档和查询文档的一组,相似之处是一个N1——- - - - - -N2矩阵,相似性(i, j)代表之间的相似性文档(我)jth查询文档,N1N2表示文档的数量文档查询,分别。

  • 给定一个bag-of-words或bag-of-n-grams模型,相似之处是一个bag.NumDocuments——- - - - - -bag.NumDocuments非对称矩阵,相似性(i, j)代表之间的相似性th和jth编码的文件

  • bag-of-words或者bag-of-n-grams模型和一组查询文档,相似之处是一个bag.NumDocuments——- - - - - -N2矩阵,相似性(i, j)代表之间的相似性th文档编码,jth文档查询,N2对应的文档的数量查询

提示

  • BM25算法集合并使用信息从输入数据中的所有文件通过这个词频率(TF)和基于逆文档频率(IDF)的选项。这种行为意味着相同的文档可以产生不同的一对BM25相似性得分函数时给予不同的文档集合。

  • BM25算法比较文档时可以输出不同的分数。这种行为是由于使用IDF权重和文档长度BM25算法。

算法

全部折叠

BM25

给定一个文档文件的集合 D 和查询文档,BM25给出分数

BM25 ( 文档 , 查询 ; D ) = 查询 ( 以色列国防军 ( 词; D ) ( , 文档 ) ( k + 1 ) ( , 文档 ) + k ( 1 b + b | 文档 | n ¯ ) ) ,

在哪里

  • 计数(词、文档)表示的频率文档

  • n ¯ 表示文档的平均长度 D

  • k表示词的频率比例因子(的值“TFScaling”名称-值对的观点)。这个因素抑制了经常出现的影响方面BM25得分。

  • b表示文档长度比例因子(的值“DocumentLengthScaling”名称-值对的观点)。这个因素控制文档的长度如何影响BM25得分。当b = 1,相当于BM11 BM25算法。当b = 0,相当于BM15 BM25算法。

  • 以色列国防军 ( , D ) 是指定的词的逆文档频率给定文档的集合 D

BM25 +

BM25 +算法地址BM25算法的局限性:组件term-frequency规范化的文档长度不正确的下界。由于这个限制,长文档不匹配查询词往往被BM25得分不公平有相似的相关性较短的文档不包含查询词。

BM25 +算法是一样的BM25算法和一个额外的参数。给定一个文档文件的集合 D 和查询文档,BM25 +得分是由

BM25 + ( 文档 , 查询 ; D ) = 查询 ( 以色列国防军 ( 词; D ) ( ( , 文档 ) ( k + 1 ) ( , 文档 ) + k ( 1 b + b | 文档 | n ¯ ) + δ ) ) ,

在额外的参数 δ 表示文档长度修正系数(的值“DocumentLengthScaling”名称-值对)。这个因素阻止算法over-penalizing长文档。

BM11

BM11是一个特例BM25b = 1

给定一个文档文件的集合 D 和查询文档,BM11给出分数

BM11 ( 文档 , 查询 ; D ) = 查询 ( 以色列国防军 ( 词; D ) ( , 文档 ) ( k + 1 ) ( , 文档 ) + k ( | 文档 | n ¯ ) )

BM15

BM15是一个特例BM25b = 0

给定一个文档文件的集合 D 和查询文档,BM15给出分数

BM15 ( 文档 , 查询 ; D ) = 查询 ( 以色列国防军 ( 词; D ) ( , 文档 ) ( k + 1 ) ( , 文档 ) + k )

引用

[1]罗伯逊、斯蒂芬和雨果•萨拉戈萨。“概率相关性框架:BM25和超越。”在信息检索基础和趋势®3,没有。4 (2009):333 - 389。

[2]巴里奥斯,费德里科•路易斯·尔塔和罗莎Wachenchauzer费德里科•洛佩兹。“变化的相似性函数TextRank自动总结。”arXiv预印本arXiv: 1602.03606(2016)。

介绍了R2020a