主要内容

使用多字词分析文本数据

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

n-gram是一个元组 N 连续的单词。例如,Bigram(案例何时 N = 2 )是一对连续的词,如“大雨”。一个unigram(案件 N = 1 )是一个单词。一袋N-GRAMS模型记录了不同N-GLAM在文档收集中出现的次数。

使用一个n-grams模型,您可以在原始文本数据中保留有关单词排序的更多信息。例如,一个n克模型更适合捕获文本中出现的短语,例如“大雨”和“雷暴风”。

创建一个n-grams模型,使用bagofngrams.。你可以输入bagofngrams.对象进入其他文本分析工具箱功能,如WordCloud.菲达

加载和提取文本数据

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

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

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

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

准备分析的文本数据

创建函数授权并预处理文本数据,以便它可以用于分析。功能PreprocessText.在示例的末尾列出,执行以下步骤:

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

  2. 使用授权文本令人畏缩的鳕文

  3. 使用擦除标点符号侵蚀

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

  5. 使用2或更少的字符删除单词removeshortwords.

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

  7. 使用的单词释放正常化字

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

文档= preprocesstext(textdata);文件(1:5)
ans = 5×1令牌Document:6个代币:物品偶尔得到扫描仪卷轴7令牌:响亮的拨浪鼓响起来了瓶子活塞4令牌:切割电源启动工厂3令牌:Fry电容器组件3令牌:搅拌机跳闸保险丝

创建词云的Bigrams

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

计算长度为2(Bigrams)的n-gram,使用bagofngrams.使用默认选项。

袋= bagofngrams(文件)
BAG =具有属性的BAGOFNGROMS:计数:[480×941双]词汇:[1×351字符串] ngrams:[941×2字符串] ngramlengs:2 numngrams:941 numfocuments:480

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

图WordCloud(包);标题(“文本数据:预处理的Bigrams”

将主题模型适合袋 - 克

潜在的Dirichlet分配(LDA)模型是一个主题模型,它发现文件集合中的底层主题,并在主题中获取单词概率。

使用10个主题创建LDA主题模型菲达。该功能通过将n-gram作为单个单词处理来拟合LDA模型。

mdl = fitlda(袋子,10,'verbose',0);

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

数字为了i = 1:4子图(2,2,i)WordCloud(MDL,i);标题(“LDA主题”+ i)结尾

云词突出了LDA主题中的通常共同发生的Bigrams。该函数根据其指定LDA主题的概率绘制大小的BIGRAM。

使用更长的短语分析文本

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

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

预处理文本。使用标点符号使用侵蚀和象征使用令人畏缩的鳕文

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

计算长度3的n克(三克),使用bagofngrams.并指定'ngramlengths'是3。

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

使用单词云可视化n-r克模型。三角形单词云更好地显示了个别单词的背景。

图WordCloud(包);标题(“文本数据:三重奏”

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

TBL = TOPKNGRACS(包,10)
TBL =.10×3表ngram count ngramlength ___________________________________________“在”扫描仪“14 3”中“”扫描仪“13 3”吹“”在“9 3”“机器人”“臂”7 3中“陷入困境”在“6 3”中是“喷洒”“冷却剂”6“从”时间“”到“6 3”时间“”时间“到”时间“6 3”听到“在”中“in”“”6 3“上”“楼层”6 3

示例预处理功能

功能PreprocessText.按顺序执行以下步骤:

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

  2. 使用授权文本令人畏缩的鳕文

  3. 使用擦除标点符号侵蚀

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

  5. 使用2或更少的字符删除单词removeshortwords.

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

  7. 使用的单词释放正常化字

功能文档= preprocessText(TextData)%将文本数据转换为小写。CleanTextData =较低(TextData);%标记文本。文档= tokenizeddocument(cleantextdata);%擦除标点符号。文件=侵蚀(文件);%删除停止单词列表。文档= Removestopwords(文件);%用2个或更少的字符删除单词,以及15或更大的单词% 人物。文档= RemoveShortwords(文件,2);文件= removelongwords(文件,15);%lemmatize单词。文档= addpartofspeechdetails(文件);文档= rangerizewords(文档,'风格''引理');结尾

也可以看看

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

相关话题