主要内容

cosineSimilarity

文档相似度与余弦相似度

描述

例子

相似之处= cosineSimilarity (文档)返回指定文档的两两余弦相似度,使用由其字数派生的tf-idf矩阵。的分数相似性(i, j)表示之间的相似性文档(我)文档(j)

例子

相似之处= cosineSimilarity (文档,查询)返回相似之处文档查询使用tf-idf矩阵派生的单词计数在文档。的分数相似性(i, j)表示之间的相似性文档(我)查询(j)

例子

相似之处= cosineSimilarity ()返回由指定的单词袋式或n-grams袋式模型编码的文档的成对相似性,使用由中的单词计数派生的tf-idf矩阵。的分数相似性(i, j)表示th和j编码的文档

相似之处= cosineSimilarity (,查询)返回由单词包或n克包模型编码的文档之间的相似性查询使用tf-idf矩阵派生的单词计数在。的分数相似性(i, j)表示编码的文档查询(j)

例子

相似之处= cosineSimilarity ()返回在矩阵行向量中编码的数据的相似性。的分数相似性(i, j)表示之间的相似性(我,:)米(j,:)

相似之处= cosineSimilarity (M1, M2)返回矩阵中编码的文档之间的相似性M1平方米。的分数相似性(i, j)对应于之间的相似度M1(我,:)平方米(j,:)

例子

全部折叠

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

textData = [“敏捷的棕色狐狸跳过了懒惰的狗”《跑得快的棕狐跳过了懒狗》“懒狗坐在那里什么都不做”“其他动物坐在那里看着”];文件= tokenizedDocument (textData)
documents = 4x1 tokenizedDocument: 9代币:快棕色狐狸跳过懒狗9代币:快棕色狐狸跳过懒狗8代币:懒狗坐在那里什么也不做6代币:其他动物坐在那里观看

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

相似性= cosineSimilarity(文件);

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

图的热图(相似性);包含(“文档”) ylabel (“文档”)标题(“余弦相似性”)

图中包含一个类型为heatmap的对象。类型热图的图表标题为余弦相似点。

接近1的分数表示高度相似。接近零的分数表示相似度较低。

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

str = [“敏捷的棕色狐狸跳过了懒惰的狗”“快狐狸跳过懒狗”“狗坐在那里,什么也不做”“其他动物坐在那里看着”];文件= tokenizedDocument (str)
documents = 4x1 tokenizedDocument: 9代币:敏捷的棕色狐狸跳过懒狗8代币:敏捷的狐狸跳过懒狗7代币:狗坐在那里什么也不做6代币:其他动物坐在那里观看

创建查询文档数组。

str = [“一只棕色的狐狸跳过了懒狗”“另一只狐狸跳过了狗”];查询= tokenizedDocument (str)
queries = 2x1 tokenizedDocument: 8 token:一只棕色的狐狸跳过了懒惰的狗6 token:另一只狐狸跳过了狗

计算输入和查询文档之间的相似性cosineSimilarity函数。输出是一个稀疏矩阵。

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

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

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

图中包含一个类型为heatmap的对象。类型热图的图表标题为余弦相似点。

接近1的分数表示高度相似。接近零的分数表示相似度较低。

中的文本数据创建一个单词包模型sonnets.csv

文件名=“sonnets.csv”;台= readtable(文件名,“TextType”,“字符串”);textData = tbl.Sonnet;文件= tokenizedDocument (textData);袋= bagOfWords(文档)
bag = bagOfWords with properties: Counts: [154x3527 double]词汇:["From" "fairest" "creatures" "we"…NumWords: 3527 NumDocuments: 154

计算十四行诗之间的相似性cosineSimilarity函数。输出是一个稀疏矩阵。

相似性= cosineSimilarity(袋);

在热图中可视化前五份文件的相似性。

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

图中包含一个类型为heatmap的对象。类型热图的图表标题为余弦相似点。

接近1的分数表示高度相似。接近零的分数表示相似度较低。

对于单词袋输入,cosineSimilarity函数使用从模型导出的tf-idf矩阵计算余弦相似度。要直接计算词数向量上的余弦相似度,将词数输入到cosineSimilarity作为矩阵函数。

中的文本数据创建一个单词包模型sonnets.csv

文件名=“sonnets.csv”;台= readtable(文件名,“TextType”,“字符串”);textData = tbl.Sonnet;文件= tokenizedDocument (textData);袋= bagOfWords(文档)
bag = bagOfWords with properties: Counts: [154x3527 double]词汇:["From" "fairest" "creatures" "we"…NumWords: 3527 NumDocuments: 154

从模型中得到字数矩阵。

M = bag.Counts;

的方法计算单词计数矩阵的余弦文档相似度cosineSimilarity函数。输出是一个稀疏矩阵。

相似性= cosineSimilarity (M);

在热图中可视化前五份文件的相似性。

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

图中包含一个类型为heatmap的对象。类型热图的图表标题为余弦相似点。

接近1的分数表示高度相似。接近零的分数表示相似度较低。

输入参数

全部折叠

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

输入字袋或n克袋模型,指定为bagOfWords对象或一个bagOfNgrams对象。如果是一个bagOfNgrams对象,则函数将每个n-gram视为单个单词。

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

  • 一个tokenizedDocument数组

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

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

为了计算术语频率和反向文档频率统计信息,该函数编码查询使用单词袋模型。它使用的模型取决于调用它的语法。如果你的语法指定了输入参数文档,那么它使用bagOfWords(文档)。如果你的语法指定了,则该函数进行编码查询使用然后使用得到的tf-idf矩阵。

输入数据,指定为矩阵。例如,可以是单词或n-gram计数的矩阵,也可以是tf-idf矩阵。

数据类型:

输出参数

全部折叠

余弦相似度分数,作为稀疏矩阵返回:

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

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

  • 给定一个单词包或n个单词包的模型,相似之处是一个袋里。NumDocuments——- - - - - -袋里。NumDocuments对称矩阵,相似性(i, j)表示th和j编码的文档

  • 给定一个单词包或n个单词包的模型和一组查询文档,相似之处是一个袋里。NumDocuments——- - - - - -N2矩阵,相似性(i, j)表示编码的文档jth文档查询,N2对应于中的文档数量查询

  • 给定一个矩阵,相似之处是一个大小(M, 1)——- - - - - -大小(M, 1)对称矩阵,相似性(i, j)表示之间的相似性(我,:)米(j,:)

  • 鉴于两个矩阵,相似之处是一个尺寸(M1, 1)——- - - - - -规模(平方米,1)矩阵,相似性(i, j)表示之间的相似性M1(我,:)平方米(j,:)

版本历史

介绍了R2020a

Baidu
map