主要内容

tfidf

术语频率-反文档频率(tf-idf)矩阵

描述

例子

= tfidf (返回一个基于词汇袋或n-gram袋模型的词汇频率-反文档频率(tf-idf)矩阵

例子

= tfidf (文档中的文档返回tf-idf矩阵文档利用反文档频率(IDF)因子计算得到

例子

= tfidf (___名称,值使用一个或多个名称-值对参数指定其他选项。

例子

全部折叠

从词汇袋模型创建术语频率-反文档频率(tf-idf)矩阵。

加载示例数据。该文件sonnetsPreprocessed.txt包含了经过预处理的莎士比亚十四行诗。该文件每行包含一首十四行诗,单词之间用空格分隔。将文本从sonnetsPreprocessed.txt,将文本以换行符分割为文档,然后标记文档。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

创建一个词袋模型使用bagOfWords

袋= bagOfWords(文档)
单词:[" fairrest " "creatures" "desire"…NumWords: 3092 NumDocuments: 154

创建一个tf-idf矩阵。查看前10行和列。

M = tfidf(袋);完整的(M (1:10, 1:10))
ans =10×103.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 3.8918 2.4720 2.5520 4.5287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 2.2644 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.7344 2.2644 2.5520 0 0 0 0 0 0 0 0 0 0 0 0

从词汇袋模型和新文档数组中创建术语频率-反文档频率(tf-idf)矩阵。

加载示例数据。该文件sonnetsPreprocessed.txt包含了经过预处理的莎士比亚十四行诗。该文件每行包含一首十四行诗,单词之间用空格分隔。将文本从sonnetsPreprocessed.txt,将文本以换行符分割为文档,然后标记文档。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

从文档中创建单词袋模型。

袋= bagOfWords(文档)
单词:[" fairrest " "creatures" "desire"…NumWords: 3092 NumDocuments: 154

为新文档的数组创建tf-idf矩阵,使用从其中计算的逆文档频率(IDF)因子

newDocuments = tokenizedDocument ([“名字有什么关系呢?”玫瑰不管叫什么名字都一样芳香。”“如果音乐是爱情的食粮,那就继续演奏吧。”]);newDocuments M = tfidf(包)
M = (1,7) 3.2452 (1,36) 1.2303 (2,197) 3.4275 (2,313) 3.6507 (2,387) 0.6061 (1,1205) 4.7958 (1,1835) 3.6507 (2,1917) 5.0370

加载示例数据。该文件sonnetsPreprocessed.txt包含了经过预处理的莎士比亚十四行诗。该文件每行包含一首十四行诗,单词之间用空格分隔。将文本从sonnetsPreprocessed.txt,将文本以换行符分割为文档,然后标记文档。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

创建一个词袋模型使用bagOfWords

袋= bagOfWords(文档)
单词:[" fairrest " "creatures" "desire"…NumWords: 3092 NumDocuments: 154

创建一个tf-idf矩阵。查看前10行和列。

M = tfidf(袋);完整的(M (1:10, 1:10))
ans =10×103.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 3.8918 2.4720 2.5520 4.5287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 2.2644 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.7344 2.2644 2.5520 0 0 0 0 0 0 0 0 0 0 0 0

通过指定TF和IDF权重公式,可以更改TF和IDF因子对TF - IDF矩阵的贡献。

若要忽略一个单词在文档中出现的次数,请使用二进制选项“TFWeight”.创建一个tf-idf矩阵和集合“TFWeight”“二元”.查看前10行和列。

M = tfidf(包“TFWeight”“二元”);完整的(M (1:10, 1:10))
ans =10×103.6507 4.3438 2.7344 3.6507 4.3438 2.2644 3.2452 1.9459 2.4720 2.5520 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 2.2644 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.7344 2.2644 2.5520 0 0 0 0 0 0 0 0 0 0 0 0

输入参数

全部折叠

输入bag-of-words或bag-of-n-grams模型,指定为bagOfWords对象或一个bagOfNgrams对象。

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

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“归一化”,真的指定规范化频率计数。

方法设置项频率(TF)因子,指定为逗号分隔对组成“TFWeight”以及以下其中之一:

  • “生”—设置TF因子为未改变的项计数。

  • “二元”—设置TF因子为1和0的矩阵,其中1表示某个术语是否在文档中。

  • “日志”—设置TF因子为1 +日志(bag.Counts)

例子:“TFWeight”、“二进制”

数据类型:字符

方法计算反文档频率因子,指定为逗号分隔对组成“IDFWeight”以及以下其中之一:

  • “textrank”—使用TextRank IDF加权[1].对于每一项,设置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 /元)

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

  • “概率”—每一项的IDF因子设置为日志((N-NT) /元)

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

例子:“IDFWeight”、“顺利”

数据类型:字符

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

此选项仅适用于以下情况“IDFWeight”“textrank”

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

选项规范化术语计数,指定为逗号分隔对,由“归一化”真正的.如果真正的,然后将每一个项计数的向量归一化,得到欧几里得范数。

例子:“归一化”,真的

数据类型:逻辑

输出文档在频率计数矩阵中的方向,指定为逗号分隔对,由“DocumentsIn”以及以下其中之一:

  • “行”-返回一个频率计数矩阵,其中包含文档对应的行。

  • “列”-返回一个转置的频率计数矩阵,其列对应于文档。

数据类型:字符

强制将输出作为单元格数组返回的指示符,指定为由逗号分隔的对组成“ForceCellOutput”真正的

数据类型:逻辑

输出参数

全部折叠

输出项频率逆文档频率矩阵,指定为稀疏矩阵或稀疏矩阵的单元阵列。

如果是非标量数组还是“ForceCellOutput”真正的,然后该函数将输出作为稀疏矩阵的单元格数组返回。单元格数组中的每个元素都是由对应的元素计算得到的tf-idf矩阵

参考文献

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

介绍了R2017b