主要内容

bm25Similarity

与BM25算法的文档相似度

描述

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

默认情况下,此函数计算BM25的相似之处。计算BM11,BM15或BM25 +相似之处,使用“DocumentLengthScaling”'DocumentLengthCorrection'论点。

例子

相似之处= bm25similarity(文档返回指定文档之间的成对BM25相似性。得分相似之处(I,J)表示文档(我)文档(j)

例子

相似之处= bm25similarity(文档疑问返回相似之处文档疑问.得分相似之处(I,J)表示文档(我)查询(j)

例子

相似之处= bm25similarity(返回由指定单词袋或n-grams模型编码的文档之间的相似性。得分相似之处(I,J)表示之间的相似性一世th和j编码的文件

相似之处= bm25similarity(疑问返回由单词袋或n-grams模型编码的文档之间的相似之处以及由疑问.得分相似之处(I,J)表示之间的相似性一世编码的文件查询(j)

例子

相似之处= bm25similarity(___名称,价值使用一个或多个名称值对参数指定其他选项。例如,要使用BM25 +算法,请设置'DocumentLengthCorrection'选项为非零值。

例子

全部收缩

创建一系列令牌文档。

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

计算它们之间的相似之处bm25Similarity功能。输出是稀疏矩阵。

相似性= bm25Similarity(文件);

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

图热图(相似之处);Xlabel(“文档”) ylabel (“文档”) 标题(“BM25相似之处”

图包含ActiveMap类型的对象。Type Heatmap的图表具有BM25相似性。

前三个文件具有最高的成对相似性,这表明这些文件最相似。最后一份文档与其他文档相对低的成对相似性,这表明本文档不像其他文档。

创建一个输入文档数组。

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

创建一系列查询文档。

str = ["一只棕色狐狸跳过了那只懒狗"“另一只狐狸跳过狗”];查询= tokenizeddocument(str)
查询= 2x1令牌地区:8令牌:棕色狐狸跳过懒狗6令牌:另一只狐狸跳过狗

方法计算输入文档和查询文档之间的相似性bm25Similarity功能。输出是稀疏矩阵。得分相似之处(I,J)表示文档(我)查询(j)

相似之处= BM25SIMILARY(文件,查询);

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

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

图包含ActiveMap类型的对象。Type Heatmap的图表具有BM25相似性。

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

从文本数据中创建一个单词袋式模型Sonnets.csv.

filename =.“sonnets.csv”;tbl = readtable(文件名,'texttype''细绳');textdata = tbl.sonnet;文档= tokenizeddocument(textdata);BAG = BAGOFWORDS(文件)
BAG =具有属性的BagofWords:Counts:[154x3527双]词汇表:[1x3527字符串] num字:3527 numfocuments:154

计算十四行诗之间的相似性使用bm25Similarity功能。输出是稀疏矩阵。

相似之处= BM25SIMILARY(袋);

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

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

图包含ActiveMap类型的对象。Type Heatmap的图表具有BM25相似性。

BM25+算法解决了BM25算法的一个限制:根据文档长度的术语频率规范化的分量不是适当的下界。由于这种限制,与查询词不匹配的长文档通常会被BM25不公平地评分,因为它们与不包含查询词的短文档具有类似的相关性。

BM25 +通过使用文档长度校正因子(值的值)来解决此限制“DocumentLengthScaling”名称值对)。此因素可防止算法过度惩罚长文档。

创建两个令牌化文档数组。

textdata1 = ["那只敏捷的棕色狐狸跳过了那只懒狗""快狐狸跳过了懒狗"“狗坐在那里,没什么”“其他动物坐在那里观看”];documents1 = tokenizeddocument(textdata1)
译文:那只敏捷的棕色狐狸跳过了那只懒狗。译文:那只敏捷的狐狸跳过了那只懒狗
textdata2 = ["一只棕色狐狸跳过了那只懒狗"“另一只狐狸跳过狗”];documents2 = tokenizeddocument(textdata2)
documents2 = 2x1 tokenizeddocument:8令牌:棕色狐狸跳过懒狗6令牌:另一只狐狸跳过狗

要计算BM25+文件的相似性,使用bm25Similarity函数,并设置'DocumentLengthCorrection'选项为非零值。在本例中,设置'DocumentLengthCorrection'选择1。

相似之处= BM25SIMILARY(Document1,Document2,'DocumentLengthCorrection'1);

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

图热图(相似之处);Xlabel(“询问”) ylabel (“文档”) 标题(“BM25 +相似之处”

图包含ActiveMap类型的对象。型热图的图表具有标题BM25 +相似性。

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

输入参数

全部收缩

输入文档,指定为tokenizedDocument数组,字符串数组,或字符向量的单元格数组。如果文档不是一个tokenizedDocument数组,则它必须是表示单个文档的行向量,其中每个元素都是一个单词。要指定多个文档,请使用tokenizedDocument大批。

输入袋式袋或n-grams模型,指定为abagOfWords对象或一个bagOfNgrams对象。如果是A.bagOfNgrams对象,然后该函数将每个n-gram视为单个单词。

查询文档集,指定为以下之一:

  • 一种tokenizedDocument大批

  • 一种bagOfWordsbagOfNgrams目的

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

  • 1 -N代表单个文档的字符向量的单元格数组,其中每个元素是单词

要计算术语频率和逆文档频率统计信息,函数编码疑问使用词汇袋模型。它使用的模型取决于调用它的语法。如果你的语法指定了输入参数文档然后它使用bagofwords(文件).如果您的语法指定然后它使用

名称值对参数

指定可选的逗号分离对名称,价值论点。的名字是参数名称和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:BM25SIMILARY(文件,'TFSCALING',1.5)返回指定文档的成对相似性,并将令牌频率缩放因子设置为1.5。

计算逆文档频率因子的方法,指定为逗号分隔的对组成'idfweight'和以下之一:

  • “textrank”- 使用Textrank IDF加权[2].对于每一项,设置IDF因子为

    • 日志((N-NT + 0.5) /(0.5元+))如果该术语发生在一半以上的文件中,在哪里N是输入数据中的文档数量NT是包含每个术语的输入数据中的文档数。

    • iDfcorrection * avgidf.如果该期限出现在文件的一半或f,其中avgIDF是所有令牌的平均IDF。

  • “classic-bm25”- 对于每个术语,将IDF因子设置为日志((N-NT + 0.5) /(0.5元+))

  • '普通的'- 对于每个术语,将IDF因子设置为日志(N /元)

  • '偶然'- 对于每个术语,将IDF因子设置为1。

  • '光滑的'- 对于每个术语,将IDF因子设置为日志(1 + n / nt)

  • “马克斯”- 对于每个术语,将IDF因子设置为日志(1 + MAX(NT)/ NT)

  • '概率主义'- 对于每个术语,将IDF因子设置为日志((n-nt)/ nt)

在哪里N是输入数据中的文档数量NT是包含每个术语的输入数据中的文档数。

术语频率缩放因子,指定为包括的逗号分隔对'tfscaling'和一个非负标量。

此选项对应于该值K.在BM25算法中。有关更多信息,请参阅BM25

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32.|uint64

文档长度缩放因子,指定为包括的逗号分隔对“DocumentLengthScaling”和一个标量在范围内[0,1]。

此选项对应于该值B.在BM25算法中。什么时候B = 1,BM25算法等同于BM11。什么时候B = 0.在美国,BM25算法相当于BM15。有关更多信息,请参阅BM11BM15,或BM25

数据类型:双倍的

逆文档频率校正因子,指定为逗号分隔对组成'idfcorrection'和一个非负标量。

此选项仅适用于何时'idfweight'“textrank”

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8.|uint16|UINT32.|uint64

文档长度校正因子,指定为逗号分隔对组成'DocumentLengthCorrection'和一个非负标量。

此选项对应于该值 δ. 在BM25+算法中。如果文档长度校正因子非零,则bm25Similarity功能使用BM25 +算法。否则,该函数使用BM25算法。有关更多信息,请参阅BM25 +

数据类型:双倍的

输出参数

全部收缩

BM25相似性分数,以稀疏矩阵的形式返回:

  • 给定单个令牌化文件,相似之处是A.N-经过-N非对称矩阵,在哪里相似之处(I,J)表示文档(我)文档(j), N为输入文档数。

  • 给定一组标记化文档和一组查询文档,相似之处是一个N1-经过-N2矩阵,其中相似之处(I,J)表示文档(我)j查询文档,和N1N2中文档的数量文档疑问, 分别。

  • 给定单个单词或袋子袋式模型,相似之处是A.BAG.NUMDOCUMENTS.-经过-BAG.NUMDOCUMENTS.非对称矩阵,在哪里相似之处(I,J)表示之间的相似性一世th和j编码的文件

  • 给出了一个单词或n-r克模型和一组查询文档,相似之处是A.BAG.NUMDOCUMENTS.-经过-N2矩阵,其中相似之处(I,J)表示之间的相似性一世编码的文件j文档in.疑问,N2对应于文件的数量疑问

提示

  • BM25算法通过术语频率(TF)和基于逆文档频率(IDF)选项来聚合并使用来自输入数据中的所有文档的信息。此行为意味着当函数给出不同的文档集合时,相同的文件可以产生不同的BM25相似度分数。

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

算法

全部收缩

BM25

给定文档集合中的一个文档 D. 和查询文档,BM25分数由

BM25 文档 询问 ; D. = 单词 询问 以色列国防军 单词; D. 数数 单词 文档 K. + 1 数数 单词 文档 + K. 1 B. + B. | 文档 | N ¯

在哪里

  • 计数(Word,Document)表示单词文档

  • N ¯ 中的平均文档长度 D.

  • K.表示项频率比例因子(价值'tfscaling'名称-值对的观点)。这个因素减弱了经常出现的术语对BM25分数的影响。

  • B.表示文件长度比例系数(价值“DocumentLengthScaling”名称-值对的观点)。该因子控制文档的长度如何影响BM25分数。什么时候B = 1,BM25算法等同于BM11。什么时候B = 0.在美国,BM25算法相当于BM15。

  • 以色列国防军 单词 D. 是否给定文档集合,指定单词的反文档频率 D.

BM25 +

BM25+算法解决了BM25算法的一个限制:根据文档长度的术语频率规范化的分量不是适当的下界。由于这种限制,与查询词不匹配的长文档通常会被BM25不公平地评分,因为它们与不包含查询词的短文档具有类似的相关性。

BM25+算法与BM25算法相同,只是增加了一个参数。给定文档集合中的一个文档 D. 和查询文档,BM25 +分数由

BM25 + 文档 询问 ; D. = 单词 询问 以色列国防军 单词; D. 数数 单词 文档 K. + 1 数数 单词 文档 + K. 1 B. + B. | 文档 | N ¯ + δ.

额外参数的地方 δ. 表示文件长度校正系数(价值“DocumentLengthScaling”名称值对)。此因素可防止算法过度惩罚长文档。

BM11

BM11是一个特殊的案例BM25什么时候B = 1

给定文档集合中的一个文档 D. 和查询文档,BM11分数由

BM11 文档 询问 ; D. = 单词 询问 以色列国防军 单词; D. 数数 单词 文档 K. + 1 数数 单词 文档 + K. | 文档 | N ¯

BM15

BM15是一个特殊的案例BM25什么时候B = 0.

给定文档集合中的一个文档 D. 和查询文档,BM15分数由

BM15 文档 询问 ; D. = 单词 询问 以色列国防军 单词; D. 数数 单词 文档 K. + 1 数数 单词 文档 + K.

参考

[1]罗伯逊,斯蒂芬,雨果萨拉戈萨。《概率关联框架:BM25及其后》信息检索的基础和趋势®3,不。4(2009):333-389。

[2] Barrios, Federico, Federico López, Luis Argerich, Rosa Wachenchauzer。自动文摘中TextRank相似函数的变化。ARXIV预印刷arxiv:1602.03606(2016)。

在R2020A中介​​绍