主要内容

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

此示例显示如何使用n克频率计数分析文本。

n-gram是一个元组 N. 连续的单词。例如,双字母组合(当的情况 N. = 2 )是一对连续的词,如“大雨”。一个unigram(案件何时 N. = 1 )是一个单词。一个n-grams模型记录了不同n-gram出现在文档集合中的次数。

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

创建一个n-grams模型,使用Bagofngrams.。你可以输入Bagofngrams.对象到其他文本分析工具箱函数中,例如WordCloud.菲达

加载和提取文本数据

加载示例数据。文件factoryreports.csv.包含出厂报告,包括每个事件的文本描述和分类标签。用空报告删除行。

filename =“factoryReports.csv”;数据= readtable(文件名,'texttype''细绳');

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

textdata = data.description;TextData(1:5)
ANS =.5×1字符串“物品偶尔会陷入扫描仪线轴上。”“响亮的嘎嘎声和敲打声来自瓶子活塞。”“在开始植物时,有能力削减到电力。”“汇编器中的油炸电容器。”“搅拌机绊倒了保险丝。”

准备分析的文本数据

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

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

  2. 使用授权文本tokenizedDocument

  3. 删除标点符号使用erasePunctuation

  4. 删除使用的停止单词列表(例如“和”,“和”和“该”)的列表removeStopWords

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

  6. 使用15个或更多字符删除单词removelongwords.

  7. 使使用的词义化正常化字

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

文档= preprocesstext(textdata);文件(1:5)
ans = 5×1令牌Document:6个代币:物品偶尔得到卡住扫描仪卷轴7令牌:响亮的拨浪鼓响起来了,响亮的拨浪鼓爆炸声音箱子活塞4令牌:切割电源启动工厂3令牌:Fry电容器汇编3令牌:搅拌机跳闸熔断器

创建词云的Bigrams

通过首先使用一个n-grams模型来创建Bigrams的单词云Bagofngrams.,然后将模型输入WordCloud.

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

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

使用单词云可视化n-grams模型。

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

适合主题模型的袋- n - grams

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

创建包含10个主题的LDA主题模型菲达。该函数通过将n-grams作为单个单词处理来拟合LDA模型。

mdl = fitlda(袋子,10,“详细”, 0);

将前四个主题可视化为Word云。

数字为了I = 1:4 subplot(2,2, I) wordcloud(mdl, I);标题(“LDA的话题”+ i)结尾

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

使用更长的短语分析文本

要使用更长的短语分析文本,请指定'ngramlengths'选项Bagofngrams.是一个更大的价值。

使用时间更长的短语时,可以在模型中保持停止单词是有用的。例如,要检测短语“不开心”,请在模型中保持停止单词“是”和“不是”。

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

CleanTextData =侵蚀(TextData);文档= tokenizeddocument(cleantextdata);

计算长度3的n-gram(三rigrams),使用Bagofngrams.并指定'ngramlengths'是3。

袋= bagofngrams(文件,'ngramlengths',3);

使用单词云可视化n-grams模型。Trigrams的单词云更好地显示了个别单词的背景。

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

查看前10个三个三重奏及其频率计数topkngrams

台= topkngrams(袋,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

例子预处理功能

这个函数preprocessText按顺序执行以下步骤:

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

  2. 使用授权文本tokenizedDocument

  3. 删除标点符号使用erasePunctuation

  4. 删除使用的停止单词列表(例如“和”,“和”和“该”)的列表removeStopWords

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

  6. 使用15个或更多字符删除单词removelongwords.

  7. 使使用的词义化正常化字

函数文件= preprocessText (textData)%将文本数据转换为小写。cleanTextData =低(textData);标记文本。文档= tokenizeddocument(cleantextdata);%擦掉标点符号。= erasePunctuation文件(文档);%删除停止单词列表。文档= Removestopwords(文件);%删除2个或更少的单词,以及15个或更大的单词%字符。文件= removeShortWords(文件,2);= removeLongWords文档(文档、15);%lemmatize单词。= addPartOfSpeechDetails文件(文档);文档= normalizeWords(文档,'风格''引理');结尾

也可以看看

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

相关的话题