TFIDF
术语频率 - 内部文档频率(TF-IDF)矩阵
描述
例子
创建TF-IDF矩阵
创建一个单词型型号的术语 - 内置文档频率(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矩阵
创建一个术语频率内文档频率(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)
指定TF重量公式
加载示例数据。文件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
目的
输入袋或n-grams型号,指定为小词
对象或一个Bagofngrams
目的。
文件
-输入文档
象征性文档
大批|单词字符串阵列|字符向量的单元格数
输入文档,指定为象征性文档
数组,单词字符串阵列或字符向量的单元格数组。如果文件
不是一个象征性文档
数组,然后必须是代表单个文档的行矢量,其中每个元素是一个单词。要指定多个文档,请使用象征性文档
大批。
名称值参数
将可选的参数对name1 = value1,...,namen = valuen
, 在哪里姓名
是参数名称和价值
是相应的值。名称值参数必须在其他参数之后出现,但是对的顺序并不重要。
在R2021a之前,请使用逗号分隔每个名称和值,并附上姓名
用引号。
例子:“归一化”,真实
指定标准化频率计数。
tfweight
-设置术语频率因子的方法
'生的'
(默认)|“二进制”
|'日志'
设置术语频率(TF)因子的方法,指定为逗号分隔对'tfweight'
以及以下一个:
'生的'
- 将TF因子设置为未更改的项计数。“二进制”
- 将TF因子设置为矩阵和零的矩阵,其中该因子指示了文档中是否术语。'日志'
- 将TF因子设置为1 +日志(袋子)
。
例子:“ tfweight”,“二进制”
数据类型:char
idfweight
-计算逆文档频率因子的方法
'普通的'
(默认)|“ Textrank”
|“ Classic-BM25”
|'一般'
|'光滑的'
|'最大限度'
|“概率”
计算逆文档频率因子的方法,指定为逗号分隔对'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
-逆文件频率校正因子
0.25(默认)|非负标量
逆文档频率校正因子,指定为逗号分隔对“ 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)。
版本历史记录
matlabコマンド
Matlabコマンドコマンドにするがクリックされまし。。
matlabコマンドコマンドに入力してしください。。。。ブラウザー
您还可以从以下列表中选择一个网站:
如何获得最佳网站性能
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
美洲
- AméricaLatina(Español)
- 加拿大(英语)
- 美国(英语)