tfidf
术语频率逆文档频率(tf-idf)矩阵
描述
例子
创建Tf-idf矩阵
从单词袋模型创建一个术语频率-逆文档频率(tf-idf)矩阵。
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
使用创建单词袋模型bagOfWords
.
bag = 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)矩阵。
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
根据文档创建单词袋模型。
bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154
使用计算的逆文档频率(IDF)因子为新文档数组创建tf-idf矩阵袋
.
newDocuments = tokenizedDocument([“名字有什么关系?”玫瑰不管叫什么名字都一样芬芳。”“如果音乐是爱情的食粮,那就继续演奏吧。”]);M = tfidf(包,newDocuments)
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
指定TF权重公式
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
使用创建单词袋模型bagOfWords
.
bag = 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-grams袋模型
bagOfWords
对象|bagOfNgrams
对象
输入单词袋或n-grams袋模型,指定为bagOfWords
对象或bagOfNgrams
对象。
文档
- - - - - -输入文档
tokenizedDocument
数组|字串数组|字符向量的单元格数组
输入文档,指定为tokenizedDocument
数组、单词的字符串数组或字符向量的单元格数组。如果文档
不是tokenizedDocument
数组,则它必须是表示单个文档的行向量,其中每个元素都是一个单词。若要指定多个文档,请使用tokenizedDocument
数组中。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“归一化”,真的
指定规范化频率计数。
TFWeight
- - - - - -设置术语频率因子的方法
“生”
(默认)|“二元”
|“日志”
方法设置术语频率(TF)因子,指定为由逗号分隔的对组成“TFWeight”
和以下其中之一:
“生”
—将TF因子设置为不变的术语数。“二元”
-将TF因子设置为由1和0组成的矩阵,其中1表示一个术语是否在文档中。“日志”
—设置TF因子为1 + log(bag.Counts)
.
例子:“TFWeight”、“二进制”
数据类型:字符
IDFWeight
- - - - - -计算文档频率逆因子的方法
“正常”
(默认)|“textrank”
|“classic-bm25”
|“一元”
|“顺利”
|“马克斯”
|“概率”
方法计算文档频率逆因子,指定为由逗号分隔的对组成“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
- - - - - -逆文档频率校正因子
0.25(默认)|负的标量
逆文档频率校正因子,指定为由逗号分隔的对组成“IDFCorrection”
一个非负标量。
此选项仅适用于“IDFWeight”
是“textrank”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
归一化
- - - - - -选项规范化术语计数
假
(默认)|真正的
选项将术语计数规范化,指定为逗号分隔的对,由“归一化”
而且真正的
或假
.如果真正的
,则该函数用欧几里得范数对每个项数向量进行归一化。
例子:“归一化”,真的
数据类型:逻辑
DocumentsIn
- - - - - -输出文档的方向
“行”
(默认)|“列”
频率计数矩阵中输出文档的方向,指定为逗号分隔的对,由“DocumentsIn”
和以下其中之一:
“行”
-返回一个矩阵的频率计数与行对应的文档。“列”
-返回频率计数的转置矩阵,列对应文档。
数据类型:字符
ForceCellOutput
- - - - - -用于强制将输出作为单元格数组返回的指示器
假
(默认)|真正的
指示符,用于强制输出作为单元格数组返回,指定为逗号分隔的对,由“ForceCellOutput”
而且真正的
或假
.
数据类型:逻辑
输出参数
参考文献
[1]巴里奥斯,费德里科,费德里科López,路易斯·阿格里奇和罗莎·瓦肯肖泽。“TextRank的相似函数的变化自动摘要。”arXiv预印arXiv:1602.03606(2016)。
版本历史
在R2017b中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。