主要内容

使用多词短语分析文本数据

此示例演示如何使用n-gram频率计数分析文本。

n-gram是一个 N 连续的单词。例如,双字母组合(当的情况 N = 2. )是一对连续的单词,如“暴雨”。单格(当 N = 1. )只有一个词。n-grams包模型记录不同n-grams在文档集合中出现的次数。

使用bag-of-n-grams模型,您可以在原始文本数据中保留更多关于单词排序的信息。例如,bag-of-n-grams模型更适合捕捉出现在文本中的短语,如“heavy rainfall”和“雷暴wind”。

要创建一个“n个袋子”模型,请使用巴戈夫克.你可以输入巴戈夫克对象到其他文本分析工具箱函数中,例如wordcloud菲特尔达.

加载和提取文本数据

加载示例数据factoryReports.csv包含工厂报告,包括每个事件的文本说明和分类标签。请删除报告为空的行。

文件名=“factoryReports.csv”; 数据=可读性(文件名,“文本类型”,“字符串”);

从表中提取文本数据并查看前几个报告。

textData=data.Description;文本数据(1:5)
ans=5×1串“项目偶尔会卡在扫描仪线轴上。”“装配机活塞发出巨大的卡嗒卡嗒声和砰砰声。”“启动设备时电源中断。”“装配机中的电容器烧坏了。”“混合器触发了保险丝。”

准备文本数据进行分析

创建一个函数,用于标记和预处理文本数据,以便用于分析。这个函数预处理文本在示例末尾列出,执行以下步骤:

  1. 使用将文本数据转换为小写降低.

  2. 使用tokenizedDocument.

  3. 删除标点符号使用erasePunctuation.

  4. 使用删除停止词列表(如“and”、“of”和“the”)移除单词.

  5. 使用删除包含2个或更少字符的单词removeShortWords.

  6. 使用删除包含15个或更多字符的单词removeLongWords.

  7. 用英语把单词语法化正常化森林.

使用示例预处理函数preprocessTest准备文本数据。

文档=预处理文本(textData);文档(1:5)
ans=5×1标记文档:6个标记:项目偶尔卡住扫描仪滑阀7个标记:响亮的嘎嘎声传来装配机活塞4个标记:切断电源启动设备3个标记:油炸电容器装配机3个标记:混合器跳闸保险丝

创建单词云

首先使用巴戈夫克,然后将模型输入wordcloud.

要计算长度为2的n-g(双格),请使用巴戈夫克使用默认选项。

袋=袋(文件)
[1×351 string] Ngrams: [941×2 string] ngramlength: 2 NumNgrams: 941 NumDocuments: 480

使用单词云将n-grams模型中的bag-of-n-grams可视化。

图wordcloud(袋);标题(文本数据:预处理双字图)

将主题模型与N-Grams中的Bag-of-N-Grams相匹配

Latent Dirichlet Allocation (LDA)模型是一种主题模型,它发现文档集合中的底层主题,并推断主题中的单词概率。

创建包含10个主题的LDA主题模型菲特尔达.该函数通过将n-gram视为单个单词来拟合LDA模型。

mdl=fitlda(袋,10,“冗长”, 0);

将前四个主题想象成单词云。

图形对于I = 1:4 subplot(2,2, I) wordcloud(mdl, I);标题(“LDA的话题”+(一)终止

在LDA主题中,单词clouds突出了常见的共现双字。函数根据特定LDA主题的概率绘制具有大小的双格图。

使用较长的短语分析文本

要使用较长的短语分析文本,请指定“Ngram长度”选项巴戈夫克是一个更大的值。

在处理较长的短语时,在模型中保留停止词可能很有用。例如,要检测短语“不快乐”,请在模型中保留停止词“是”和“不是”。

预处理文本。使用删除标点符号erasePunctuation,并使用tokenizedDocument.

cleanTextData=删除标点符号(textData);文档=标记化文档(cleanTextData);

要计算长度为3(三叉图)的n克数,请使用巴戈夫克并指定“Ngram长度”是3。

袋=袋(文件、,“Ngram长度”,3);

使用单词云将n-grams模型中的bag-of-n-grams可视化。单词“三叉树云”能更好地显示单个单词的上下文。

图wordcloud(袋);标题(“文本数据:三元模型”)

使用查看前10个三角图及其频率计数topkngrams.

tbl=顶置图(袋,10)
tbl=10×3表Ngram计数NgramLength  __________________________________ _____ ___________ " ”“”“搅拌机”14 3“在”“”“扫描仪”13 3“吹”“在”“9 3”“机器人”“手臂”7 3”“”“”“6 3”是“喷洒”“冷却剂”6 3”“时间”“6 3”时间”“”“时间”6 3”听到“”“”“6 3”的“地板”6 3

例子预处理功能

这个函数预处理文本按顺序执行以下步骤:

  1. 使用将文本数据转换为小写降低.

  2. 使用tokenizedDocument.

  3. 删除标点符号使用erasePunctuation.

  4. 使用删除停止词列表(如“and”、“of”和“the”)移除单词.

  5. 使用删除包含2个或更少字符的单词removeShortWords.

  6. 使用删除包含15个或更多字符的单词removeLongWords.

  7. 用英语把单词语法化正常化森林.

函数文件= preprocessText (textData)%将文本数据转换为小写。cleanTextData =低(textData);标记文本。文档=标记化文档(cleanTextData);%擦掉标点符号。= erasePunctuation文件(文档);%删除停止词列表。文件=删除文字(文件);%删除2个或更少的单词,以及15个或更大的单词%字符。文件= removeShortWords(文件,2);= removeLongWords文档(文档、15);%把这些词用柠檬语法化。= addPartOfSpeechDetails文件(文档);文档= normalizeWords(文档,“风格”,“引理”);终止

另见

||||||||||||

相关的话题