主要内容

tfidf

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

描述

例子

= tfidf (返回一个基于单词包或n克包模型的术语频率-反向文档频率(tf-idf)矩阵

例子

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

例子

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

例子

全部折叠

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

加载示例数据。该文件sonnetsPreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,词之间用空格隔开。从中提取文本sonnetsPreprocessed.txt,以换行符将文本拆分为文档,然后对文档进行标记。

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

使用创建单词袋模型bagOfWords

袋= bagOfWords(文档)
计数:[154x3092 double]词汇:[“最公平的”“生物”“欲望”…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(文档)
计数:[154x3092 double]词汇:[“最公平的”“生物”“欲望”…NumWords: 3092 NumDocuments: 154

使用从中计算的反向文档频率(IDF)因子为新文档数组创建tf-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(文档)
计数:[154x3092 double]词汇:[“最公平的”“生物”“欲望”…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

输入参数

全部折叠

输入单词袋或n克袋模型,指定为bagOfWords对象或一个bagOfNgrams对象。

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

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

方法来设置项频率(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

Baidu
map