主要内容

使用textrank从文本数据中提取关键字

此示例显示使用Textrank从文本数据中提取关键字。

Textrank关键字提取算法利用基于词语标签的方法提取关键字来识别候选关键字,并使用由滑动窗口确定的字共同发生来分量它们。关键字可以包含多个令牌。此外,Textrank关键字提取算法还可以在文档中连续出现时合并关键字。

提取关键词

创建一个包含文本数据的标记化文档数组。

textData = [MATLAB为工程师提供了非常有用的工具。科学家们使用了许多有用的MATLAB工具箱。”“Matlab和Simu金宝applink有许多功能。Matlab和Simulink可以轻松开发模型。”你可以很容易地在MATLAB中导入数据。特别是,你可以很容易地导入文本数据。”];文档= tokenizeddocument(textdata);

使用该关键字提取textrankKeywords函数。

tbl = textraprackkeywords(文件)
台=6×3表关键字DocumentNumber得分  _____________________________________ ______________ ______ " 有用”“MATLAB”“工具箱”1 4.8695“有用”“”“”1 2.3612”MATLAB”“”“”1 1.6212“许多”“功能”““2 4.6152”文本”“数据”“”“”“”“3 3.4781”数据3 1.7391

如果关键字包含多个单词,那么字符串数组的元素对应于关键字的第一个字。如果关键字的字数比最长关键字的字数少,那么字符串数组的其余条目就是空字符串”“

有关可读性,请使用“将多字关键字转换为单词”使用“加入功能。

如果尺寸(tbl.keyword,2)> 1 tbl.keyword = strip(加入(tbl.keyword));结束头(TBL)
ans =.6×3表关键字DocumentNumber得分  _________________________ ______________ ______ " 有用的MATLAB工具箱4.8695“1”有用“1 2.3612”MATLAB 1.6212“1”许多特性“2 4.6152”文本数据数据“3 3.4781 3 1.7391

指定每个文档中关键字的最大数量

textrankKeywords函数在默认情况下返回所有确定的关键字。为了减少关键字的数量,请使用'maxnumkeywords'选择。

通过设置来提取每个文档的前两个关键字'maxnumkeywords'选项2。

tbl = textrankkeywords(文件,'maxnumkeywords'2)
台=5×3表关键字DocumentNumber得分  _____________________________________ ______________ ______ " 有用”“MATLAB”“工具箱”1 4.8695“有用”“”“”1 2.3612“许多”“功能”““2 4.6152”文本”“数据”“”“”“”“3 3.4781”数据3 1.7391

指定词性标记

注意,在上面提取的关键字中,函数没有将单词“import”视为关键字。这是因为TextRank关键字提取算法在默认情况下使用带有词性标记“名词”、“专有名词”和“形容词”的标记作为候选关键字。因为单词“import”是一个动词,所以算法不将其视为候选关键字。同样,该算法也不将副词“easily”作为候选关键字。

要指定要用于识别候选关键字的哪个词段标记,请使用'partofspeech'选择。

从与前面相同的文本中提取关键字,并指定还指定词性标记“副词”“动词”

newTags = [“副词”“动词”];标签= [“名词”“适当的名词”“形容词”新标志];tbl = textrankkeywords(文件,'partofspeech'、标签)
台=7×3表关键字Dextednumber分数______________________________________________“使用”“很多”“有用”“MATLAB”1 5.8839“有用”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”金宝app“”2 4.5058“simu金宝applink”“”“”“”2 1.5161“导入”“文本”“数据”“”3 4.7921“导入”“数据”“”“”3 3.4195

请注意,该函数将令牌“导入”作为候选关键字对待,并将其合并到多字关键字“导入数据”和“导入文本数据”中。

指定窗口大小

注意,在上面提取的关键字中,函数没有将副词“easily”提取为关键字。这是因为文本中的这些词与其他候选关键字接近。

Textrank关键字提取算法使用滑动窗口内的成对共同数量分数候选关键字。要增加窗口大小,请使用“窗口”选择。增加窗口大小使函数能够在关键字之间找到更多的共现,从而增加关键字的重要性分数。这可能会导致找到更多的相关关键字的代价是潜在的高估不相关的关键字。

从与前面相同的文本中提取关键字,并指定也指定窗口大小为3。

tbl = textrankkeywords(文件,'partofspeech'、标签、“窗口”3,3)
台=8×3表关键字DocumentNumber得分  ____________________________________________ ______________ ______ " 许多““有用”“MATLAB”“4.2185“1“真的”“有用的”“”“MATLAB 2.8851“1” " "" "" "" 1个1.3154”仿真软件 " "" "" "" 2 1.4526”开发 " "金宝app" "" "" 2 1.0912”特性 " "" "" "" 2 1.0794“轻松”“进口”“文本”5.2989“数据”3“轻松”“进口”“数据”“3 4.0842

请注意,该函数将令牌“轻松”作为关键字对待,并将其与多字关键字“轻松导入文本数据”和“轻松导入数据”合并。

了解有关Textrank关键字提取算法的更多信息,请参阅Textrank关键字提取

选择

您可以试验不同的关键字提取算法,看看哪种算法最适合您的数据。由于TextRank关键字算法采用基于词性标记的方法提取候选关键字,因此提取的关键字可以很短。或者,您可以尝试使用RAKE算法提取关键字,该算法提取出现在分隔符之间的标记序列作为候选关键字。使用RAKE提取关键字,使用rakeKeywords函数。要了解更多,请参见使用Rake提取文本数据的关键字

参考

[1] Mihalcea,Rada和Paul Tarau。“Textrank:将订单融入文字中。”在2004年自然语言处理实证方法会议论文集, 404 - 411页。2004.

另请参阅

|||

相关话题