TFIDF

词频 - 逆文档频率(TF-IDF)矩阵

描述

中号= TFIDF(返回基于单词袋或n字袋模型的术语频率逆文档频率(tf-idf)矩阵

中号= TFIDF(文件中的文档返回tf-idf矩阵文件利用逆文档频率(IDF)因子计算得出

中号= TFIDF(___名称,值指定使用额外的一个或多个选项的名称 - 值对的参数。

例子

全部折叠

创建从袋的词的模型的词频 - 逆文档频率(TF-IDF)矩阵。

加载的示例数据。文件sonnetsPreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件包含每行一个十四行诗,文字分离通过的空间。提取文本sonnetsPreprocessed.txt,拆分文本的换行符的文件,然后记号化文档。

文件名=“sonnetsPreprocessed.txt”;STR = extractFileText(文件名);的TextData = SPLIT(STR,换行);文档= tokenizedDocument(的TextData);

使用创建一个单词包模型bagOfWords

袋= bagOfWords(文档)
袋= bagOfWords具有属性:计算:[154x3092双]词汇:[1x3092字符串] 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 = SPLIT(STR,换行);文档= tokenizedDocument(的TextData);

从文档创建一个单词包模型。

袋= bagOfWords(文档)
袋= bagOfWords具有属性:计算:[154x3092双]词汇:[1x3092字符串] NUMWORDS:3092个NumDocuments:154

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

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

加载的示例数据。文件sonnetsPreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件包含每行一个十四行诗,文字分离通过的空间。提取文本sonnetsPreprocessed.txt,拆分文本的换行符的文件,然后记号化文档。

文件名=“sonnetsPreprocessed.txt”;STR = extractFileText(文件名);的TextData = SPLIT(STR,换行);文档= tokenizedDocument(的TextData);

使用创建一个单词包模型bagOfWords

袋= bagOfWords(文档)
袋= bagOfWords具有属性:计算:[154x3092双]词汇:[1x3092字符串] 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-gram模型,指定为bagOfWords对象或一个bagOfNgrams对象。

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

名称-值对的观点

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

例子:“规范化”,真指定标准化频率计数。

方法来设置术语频率(TF)系数,指定为逗号分隔的一对组成的'TFWeight'和以下情况之一:

  • “生”-设置TF因子为不变的学期计数。

  • “二进制”- 将TF因素一和零,其中的那些指示术语是文档中的矩阵。

  • “日志”- 将TF因素1 +日志(bag.Counts)

例子:'TFWeight', '二进制'

数据类型:字符

方法来计算逆文档频率因子,指定为逗号分隔的一对组成的“IDFWeight”和以下情况之一:

  • 'textrank'- 使用TextRank IDF加权[1]。对于每个术语,将IDF因子设置为

    • 日志((N-NT + 0.5) /(0.5元+))如果出现长期多的文件,其中的一半ñ输入数据中的文档数量和NT是在含有各术语将输入数据的文档的数量。

    • IDFCorrection * avgIDF如果该术语出现在文件的一半或f中,其中avgIDF为所有令牌的平均IDF。

  • “classic-bm25”- 对于每一个学期,以色列国防军因子设置为日志((N-NT + 0.5) /(0.5元+))

  • '正常'- 对于每一个学期,以色列国防军因子设置为日志(N / NT)

  • “一元”- 对于每个术语中,IDF因子设置为1。

  • “顺利”- 对于每一个学期,以色列国防军因子设置为日志(1 + NT /元)

  • “马克斯”- 对于每一个学期,以色列国防军因子设置为日志(1 +马克斯(NT) /元)

  • “概率”- 对于每一个学期,以色列国防军因子设置为日志((N-NT) /元)

哪里ñ输入数据中的文档数量和NT是在含有各术语将输入数据的文档的数量。

例子:'IDFWeight', '平滑'

数据类型:字符

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

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

数据类型:||INT8|int16|int32|int64|UINT8|uint16|UINT32|UINT64

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

例子:“规范化”,真

数据类型:合乎逻辑

在频率计数矩阵输出文档的取向,指定为逗号分隔的一对组成的'DocumentsIn'和以下情况之一:

  • “行”- 返回频数与符合文件列的矩阵。

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

数据类型:字符

指示器,用于迫使输出作为逗号分隔一对包括要被返回作为单元阵列,指定“ForceCellOutput”真正的

数据类型:合乎逻辑

输出参数

全部折叠

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

如果是一种非标量数组或“ForceCellOutput”真正的,则该函数将返回输出作为稀疏矩阵的单元阵列。单元阵列中的每个元素是从对应的元素计算的TF-IDF矩阵

参考文献

[1]巴里奥斯,费德里科,费德里科洛佩兹,路易斯阿格里奇,和罗莎Wachenchauzer。“TextRank为自动汇总的相似功能的变化。”预印本的arXiv的arXiv:1602.03606(2016)。

介绍了在R2017b