此示例显示如何使用n克频率计数分析文本。
n-gram是一个元组 连续的单词。例如,Bigram(案例何时 )是一对连续的词,如“大雨”。一个unigram(案件 )是一个单词。一袋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.
在示例的末尾列出,执行以下步骤:
将文本数据转换为小写使用降低
。
使用授权文本令人畏缩的鳕文
。
使用擦除标点符号侵蚀
。
删除使用的停止单词列表(例如“和”,“和”和“该”)的列表Removestopwords.
。
使用2或更少的字符删除单词removeshortwords.
。
使用15个或更多字符删除单词removelongwords.
。
使用的单词释放正常化字
。
使用示例预处理功能预加工
准备文本数据。
文档= preprocesstext(textdata);文件(1:5)
ans = 5×1令牌Document:6个代币:物品偶尔得到扫描仪卷轴7令牌:响亮的拨浪鼓响起来了瓶子活塞4令牌:切割电源启动工厂3令牌:Fry电容器组件3令牌:搅拌机跳闸保险丝
通过首先使用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.
按顺序执行以下步骤:
将文本数据转换为小写使用降低
。
使用授权文本令人畏缩的鳕文
。
使用擦除标点符号侵蚀
。
删除使用的停止单词列表(例如“和”,“和”和“该”)的列表Removestopwords.
。
使用2或更少的字符删除单词removeshortwords.
。
使用15个或更多字符删除单词removelongwords.
。
使用的单词释放正常化字
。
功能文档= preprocessText(TextData)%将文本数据转换为小写。CleanTextData =较低(TextData);%标记文本。文档= tokenizeddocument(cleantextdata);%擦除标点符号。文件=侵蚀(文件);%删除停止单词列表。文档= Removestopwords(文件);%用2个或更少的字符删除单词,以及15或更大的单词% 人物。文档= RemoveShortwords(文件,2);文件= removelongwords(文件,15);%lemmatize单词。文档= addpartofspeechdetails(文件);文档= rangerizewords(文档,'风格'那'引理');结尾
addpartofspeechdetails.
|bagofngrams.
|Bagofwords.
|侵蚀
|菲达
|Ldamodel.
|正常化字
|removelongwords.
|removeshortwords.
|Removestopwords.
|令人畏缩的鳕文
|Topkngrams.
|WordCloud.