主要内容

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

这个例子展示了如何使用TextRank从文本数据中提取关键字。

TextRank关键字提取算法使用基于词性标签的方法提取关键字,以识别候选关键字,并使用滑动窗口确定的单词共现情况对它们进行评分。关键字可以包含多个令牌。此外,TextRank关键字提取算法也合并关键字时,他们连续出现在一个文档。

提取关键字

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

textData = [“MATLAB为工程师提供了非常有用的工具。科学家们使用了许多有用的MATLAB工具箱。”“MATLAB和Simu万博1manbetxlink有很多特点。MATLAB和Simu万博1manbetxlink使开发模型变得很容易。”“您可以轻松地在MATLAB中导入数据。特别是,您可以轻松地导入文本数据。”];documents = tokenizedDocument(textData);

方法提取关键字textrankKeywords函数。

tbl = 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元素对应于关键字的第一个字。如果关键字的字数比最长关键字的字数少,则字符串数组的剩余项为空字符串""

方法将多词关键字转换为单个字符串,以提高可读性加入而且功能。

如果size(tbl.关键字,2)> 1 tbl. size。关键字= strip(join(tbl.Keyword));结束头(台)
关键字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”是一个动词,算法不会将其视为候选关键字。同样,该算法也不会将副词“easy”作为候选关键字。

若要指定用于识别候选关键字的词性标记,请使用“PartOfSpeech”选择。

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

newTags = [“副词”“动词”];标签= [“名词”“专有名词”“形容词”newTags];tbl = textrankKeywords(文档,“PartOfSpeech”、标签)
台=7×3表关键字DocumentNumber得分  ____________________________________________ ______________ ______ " 使用”“多”“有用”“MATLAB 5.8839“1”有用 " "" "" "" 1 MATLAB 2.0169” " "" "" "" 1 1.5478“模型”“有”“多”“2 4.5058”模型 "万博1manbetx "" "" "" 2 1.5161“进口”“文本”“数据”“3 4.7921“进口”“数据”“3.4195”“3

注意,这里函数将令牌“import”作为候选关键字,并将其合并为多字关键字“import data”和“import text data”。

指定Windows大小

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

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

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

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

注意,这里函数将令牌“easy”视为关键字,并将其合并为多词关键字“easy import text data”和“easy import data”。

要了解关于TextRank关键字提取算法的更多信息,请参见TextRank关键词提取

选择

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

参考文献

Mihalcea, Rada和Paul Tarau。“Textrank:为文本带来秩序。”在2004年自然语言处理经验方法会议论文集,第404-411页。2004.

另请参阅

|||

相关的话题