这个例子展示了如何使用TextRank从文本数据中提取关键字。
TextRank关键字提取算法使用基于词性标签的方法提取关键字,识别候选关键字,并使用滑动窗口确定的词共现对其评分。关键字可以包含多个标记。此外,TextRank关键字提取算法还在关键字连续出现在文档中时合并它们。
创建包含文本数据的标记化文档数组。
textData = [“MATLAB为工程师提供了非常有用的工具。科学家们使用许多有用的MATLAB工具箱。”MATLAB和Simul金宝appink有很多特性。MATLAB和Simu金宝applink使开发模型变得容易。”“你可以很容易地在MATLAB中导入数据。特别是,您可以轻松地导入文本数据。”];文件= tokenizedDocument (textData);
提取关键字使用textrankKeywords
函数。
台= textrankKeywords(文档)
台=6×3表关键字DocumentNumber得分 _____________________________________ ______________ ______ " 有用”“MATLAB”“工具箱”1 4.8695“有用”“”“”1 2.3612”MATLAB”“”“”1 1.6212“许多”“功能”““2 4.6152”文本”“数据”“”“”“”“3 3.4781”数据3 1.7391
如果关键字包含多个单词,则我字符串数组的第Th元素对应于我关键字的字。如果关键字的单词比最长关键字的单词少,则字符串数组的其余条目为空字符串""
.
属性将多字关键字转换为单个字符串,以提高可读性加入
和带
功能。
如果> 1 tbl. size(tbl. keyword,2);关键词=地带(加入(tbl.Keyword));结束头(台)
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。
台= 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 = [“副词”“动词”];标签= [“名词”“专有名词”“形容词”newTags];台= textrankKeywords(文档,“PartOfSpeech”、标签)
台=7×3表关键字DocumentNumber得分 ____________________________________________ ______________ ______ " 使用”“多”“有用”“MATLAB 5.8839“1”有用 " "" "" "" 1 MATLAB 2.0169” " "" "" "" 1 1.5478“模型”“有”“多”“2 4.5058”模型 "金宝app "" "" "" 2 1.5161“进口”“文本”“数据”“3 4.7921“进口”“数据”“3.4195”“3
注意,这里函数将令牌“import”作为一个候选关键字,并将其合并到多字关键字“import data”和“import text data”中。
注意,在上面提取的关键字中,函数并没有将副词“easily”提取为关键字。这是因为文本中的这些词与其他候选关键字很接近。
TextRank关键字提取算法使用滑动窗口内成对共出现的数量对候选关键字进行评分。要增加窗口大小,请使用“窗口”
选择。增加窗口大小使功能能够找到更多关键字之间的共同出现,从而增加关键字的重要性得分。这可能会导致你找到更多相关的关键字,但代价可能是给不那么相关的关键字打高分。
从相同的文本中提取关键字,也指定窗口大小为3。
台= textrankKeywords(文档,...“PartOfSpeech”、标签、...“窗口”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“轻松”“进口”“数据”“34.0842
注意,这里的函数将标记“easily”视为关键字,并将其合并为多字关键字“easily import text data”和“easily import data”。
要了解更多关于TextRank关键字提取算法的信息,请参见TextRank关键字提取.
你可以尝试不同的关键字提取算法,看看什么最适合你的数据。由于TextRank关键字算法采用基于词性标签的方法提取候选关键字,因此提取的关键字可以很短。或者,您可以尝试使用RAKE算法提取关键字,该算法提取分隔符之间出现的标记序列作为候选关键字。要使用RAKE提取关键字,请使用rakeKeywords
函数。想要了解更多,请看利用RAKE从文本数据中提取关键字.
Mihalcea, Rada和Paul Tarau。“Textrank:将秩序带入文本。”在2004年自然语言处理经验方法会议论文集, 404 - 411页。2004.
tokenizedDocument
|rakeKeywords
|textrankKeywords
|extractSummary