主要内容

TFIDF

术语频率 - 内部文档频率(TF-IDF)矩阵

描述

例子

m= tfidf(返回基于单词袋或n-grams型号的频率分离文档频率(TF-IDF)矩阵

例子

m= tfidf(,,,,文件返回文档中的TF-IDF矩阵文件通过使用根据根据的逆文档频率(IDF)因素

例子

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

例子

全部收缩

创建一个单词型型号的术语 - 内置文档频率(TF-IDF)矩阵。

加载示例数据。文件sonnetspreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件包含每行十四行诗,单词被一个空间隔开。提取文本sonnetspreprocessed.txt,将文本分成新线字符的文档,然后将文档归为文档。

文件名=“ Sonnetspreprocessed.txt”;str = extractfiletext(filename);textdata = split(str,newline);documents = tokenizedDocument(textData);

使用使用袋型号的模型小词

bag = bagofwords(文档)
Bag =带有属性的Bagofword:计数:[154x3092 double]词汇:[“ fairest”“最”“生物”“ 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 0 0 0 0 0 4.5287 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 00 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.2644 0 0 0 2.5520 0 0 2.7344 0 0 0 0 0 0 0

创建一个术语频率内文档频率(TF-IDF)矩阵,从单词袋模型和一系列新文档。

加载示例数据。文件sonnetspreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件包含每行十四行诗,单词被一个空间隔开。提取文本sonnetspreprocessed.txt,将文本分成新线字符的文档,然后将文档归为文档。

文件名=“ Sonnetspreprocessed.txt”;str = extractfiletext(filename);textdata = split(str,newline);documents = tokenizedDocument(textData);

从文档中创建一个单词范围的型号。

bag = bagofwords(文档)
Bag =带有属性的Bagofword:计数:[154x3092 double]词汇:[“ fairest”“最”“生物”“ desire” ...] 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(2,1917)

加载示例数据。文件sonnetspreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件包含每行十四行诗,单词被一个空间隔开。提取文本sonnetspreprocessed.txt,将文本分成新线字符的文档,然后将文档归为文档。

文件名=“ Sonnetspreprocessed.txt”;str = extractfiletext(filename);textdata = split(str,newline);documents = tokenizedDocument(textData);

使用使用袋型号的模型小词

bag = bagofwords(文档)
袋子=带有3092个单词和154个文档的Bagofwords:最公平的生物渴望增加……1 1 1 1 1 1 0 0 0 0 0 0 0…

创建一个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 0 0 0 0 0 4.5287 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 00 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.2644 0 0 0 2.5520 0 0 2.7344 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 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 0 0 0 0 2.5520 0 0 0 0 0 2.2644 0 0 0 0 0 0 0 0 0 2.2644 0 0 0 00 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.2644 0 0 0 2.5520 0 0 2.7344 0 0 0 0 0 0 0

输入参数

全部收缩

输入袋或n-grams型号,指定为小词对象或一个Bagofngrams目的。

输入文档,指定为象征性文档数组,单词字符串阵列或字符向量的单元格数组。如果文件不是一个象征性文档数组,然后必须是代表单个文档的行矢量,其中每个元素是一个单词。要指定多个文档,请使用象征性文档大批。

名称值参数

将可选的参数对name1 = value1,...,namen = valuen, 在哪里姓名是参数名称和价值是相应的值。名称值参数必须在其他参数之后出现,但是对的顺序并不重要。

在R2021a之前,请使用逗号分隔每个名称和值,并附上姓名用引号。

例子:“归一化”,真实指定标准化频率计数。

设置术语频率(TF)因子的方法,指定为逗号分隔对'tfweight'以及以下一个:

  • '生的'- 将TF因子设置为未更改的项计数。

  • “二进制”- 将TF因子设置为矩阵和零的矩阵,其中该因子指示了文档中是否术语。

  • '日志'- 将TF因子设置为1 +日志(袋子)

例子:“ tfweight”,“二进制”

数据类型:char

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

  • “ Textrank”- 使用Textrank IDF加权[1]。对于每个学期,将IDF因子设置为

    • log((N-NT+0.5)/(NT+0.5))如果该术语发生在一半以上的文档中,则n是输入数据中的文档数量nt是包含每个学期的输入数据中的文档数量。

    • IDFCorcement*AVGIDF如果该术语在文档或f的一半中出现,则AVGIDF是所有令牌的平均IDF。

  • “ Classic-BM25”- 对于每个学期,将IDF因子设置为log((N-NT+0.5)/(NT+0.5))

  • '普通的'- 对于每个学期,将IDF因子设置为log(n/nt)

  • '一般'- 对于每个学期,将IDF因子设置为1。

  • '光滑的'- 对于每个学期,将IDF因子设置为日志(1+N/NT)

  • '最大限度'- 对于每个学期,将IDF因子设置为log(1+max(nt)/nt)

  • “概率”- 对于每个学期,将IDF因子设置为log((n-nt)/nt)

在哪里n是输入数据中的文档数量nt是包含每个学期的输入数据中的文档数量。

例子:“ idfweight”,“平滑”

数据类型:char

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

此选项仅适用'idfweight'“ Textrank”

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

选项将术语计数标准化,指定为逗号分隔对“归一化”真的或者错误的。如果真的,然后该函数将欧几里得规范中的每个项计数的每个载体归一化。

例子:“归一化”,真实

数据类型:逻辑

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

  • “行”- 返回与文档相对应的行频率计数矩阵。

  • '列'- 返回带有与文档相对应的列的频率计数的转置矩阵。

数据类型:char

强迫输出作为单元阵列返回的指标,指定为逗号分隔对,由“ forceleloutput”真的或者错误的

数据类型:逻辑

输出参数

全部收缩

输出术语频率段文档频率矩阵,指定为稀疏矩阵或稀疏矩阵的单元格数组。

如果是非量表阵列或“ forceleloutput”真的,然后该函数将输出作为稀疏矩阵的单元格数组返回。单元阵列中的每个元素是从

参考

[1] Barrios,Federico,FedericoLópez,Luis Argerich和Rosa Wachenchauzer。“自动汇总的Textrank相似性函数的变化。”ARXIV预印ARXIV:1602.03606(2016)。

版本历史记录

在R2017b中引入