主要内容

使用Rake提取文本数据的关键字

此示例显示如何使用快速自动关键字提取(Rake)从文本数据中提取关键字。

RAKE算法使用基于分隔符的方法提取关键字来识别候选关键字,并使用候选关键字中显示的单词共同发生来分级它们。关键字可以包含多个令牌。此外,RAKE算法还可以在多次出现多次时合并关键字,由相同的合并分隔符分隔。

提取关键词

创建包含文本数据的令牌化文档数组。

textdata = [“Matlab为科学家和工程师提供工具。Matlab被科学家和工程师使用。”“分析文本和图像。您可以导入文本和图像。”“分析文本和图像。分析Matlab中的文本,图像和视频。”];文档= tokenizeddocument(textdata);

使用该关键字提取Rakekeywords.功能。

tbl = rakekeywords(文件)
TBL =.12×3表关键字Decopernumber得分_______________________________________________________________________“MATLAB”提供“”工具“1 8”MATLAB“”“”1 2“科学家”“和”工程师“1 2”工程师“”“1 1”科学家“”““”1 1“分析”“文本”“”2 4“导入”“文本”“”2 4“图像”“”“”“2 1”分析“文本”“”“”“”“”“”“”“”“”““3 1”图像“”“”“3 1”视频“”“”“3 1

如果关键字包含多个单词,那么一世字符串数组的元素对应于一世关键字的单词。如果关键字具有更少的单词,则最长关键字,那么String数组的剩余条目是空字符串

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

如果尺寸(tbl.keyword,2)> 1 tbl.keyword = strip(加入(tbl.keyword));结尾头(TBL)
ans =.8×3表关键字Decopernumber得分_____________________________________________“MATLAB提供工具”1 8“MATLAB”1 2“科学家和工程师”1 2“工程师”1 1“科学家”1“分析文本”2 4“进口文本”2 4“图像”2 1

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

Rakekeywords.默认情况下,函数返回所有已识别的关键字。要减少关键字的数量,请使用'maxnumkeywords'选项。

通过设置提取每个文档的前三个关键字'maxnumkeywords'选择3。

tbl = rakekeywords(文件,'maxnumkeywords'3,3)
TBL =.9×3表关键字Decopernumber得分_______________________________________________________“MATLAB”提供“工具”1 8“MATLAB”“”“1 2”科学家“”和“工程师”1 2“分析”文本“”“”“”“”“文本”“2 4”图像“”“”“”2 1“分析”“文本”“”“3 4”matlab“”“”“3 1”图像“”“”“3 1

指定分隔符

请注意,在上面提取的关键字中,该功能从第一个文档中提取多字关键字“科学家和工程师”,但不会从第二个文档中提取多字关键字“文本和图像”。这是因为Rake算法使用分隔符之间的令牌作为候选关键字,并且算法仅在合并短语出现多次时合并与分隔符的关键字。

在这种情况下,令牌“文本”的实例出现在两个不同的多字关键字候选“分析文本”和“导入文本”中。因为,在这种情况下,该功能不会将“文本”提取为单独的候选关键字,算法不考虑与分隔符“和”和候选关键字“图像”合并候选。

您可以指定使用用于使用该关键字的分隔符使用'分隔师''mergingdelimiters'选项。要指定不应显示在提取的关键字中的分隔符,请使用'分隔师'选项。要指定可以出现在提取的关键字中的分隔符,请使用'mergingdelimiters'选项。

从相同的文本中提取关键字,如前所述,并指定单词“分析”和“导入”作为合并分隔符。

newdelimiters = [“分析”“进口”];mergingdelimiters = [stopwords newdelimiters];tbl = rakekeywords(文件,'mergingdelimiters',mergingdelimiters)
TBL =.12×3表关键字Decopernumber得分_______________________________________________________________________“MATLAB”提供“”工具“1 8”MATLAB“”“”1 2“科学家”“和”工程师“1 2”工程师“”“1 1”科学家“”““”“1 1”文本“”和“图像”2 2“图像”“”“2 1”文本“”“”“”“2 1”matlab“”“”“”3 1“图像”“”“”“”“”“”“3 1“文本”“”“”3 1“视频”“”“”“3 1

请注意,该函数将令牌“文本”和“图像”视为关键字,并提取合并的关键字“文本和图像”。要了解有关Rake算法的更多信息,请参阅快速自动关键字提取

备择方案

您可以尝试使用不同的关键字提取算法,以查看最适合您的数据。因为RAKE算法使用基于分隔符的方法来提取候选关键字,所以提取的关键字可能很长。或者,您可以尝试使用Textrank算法提取关键字,该算法从单个令牌以候选关键字开头,然后在适当时合并它们。要使用Textrank提取关键字,请使用textrakkeywords.功能。要了解更多信息,请参阅使用textrank从文本数据中提取关键字

参考

[1]玫瑰,斯图尔特,戴夫恩格尔,尼克克莱默,和温迪·凯利。“自动关键字提取单个文件。”文本挖掘:应用与理论1(2010):1-20。

也可以看看

|||

相关话题