29.MATLAB NLP 文字工具箱简单文本分析

官方教程Create Simple Text Model for Classification

1.词频直方图统计:

categorical创建分类数组

histogram用法

data.event_type = categorical(data.event_type);前后data.event_type变化:

把“”删除了

data.event_type = categorical(data.event_type);
figure
h = histogram(data.event_type);
xlabel("Class")
ylabel("Frequency")
title("Class Distribution")

词频直方图如下,当然如果是NLP的话,得删掉StopWords,太长的以及太短的。 

扫描二维码关注公众号,回复: 10797130 查看本文章

 2.删掉低频词

有些词频太低了,在直方图中把它删掉

面向对象,类,属性,方法

classCounts = h.BinCounts;
classNames = h.Categories;
idxLowCounts = classCounts < 10;
infrequentClasses = classNames(idxLowCounts);
idxInfrequent = ismember(data.event_type,infrequentClasses);
data(idxInfrequent,:) = [];

这种写法也行哦

bag = removeInfrequentWords(bag,2);
[bag,idx] = removeEmptyDocuments(bag);
YTrain(idx) = [];

3.划分训练集和测试集

cvpartition

10%划成测试集,90%划成训练集

cvp = cvpartition(data.event_type,'Holdout',0.1);
dataTrain = data(cvp.training,:);
dataTest = data(cvp.test,:);

提取标签

textDataTrain = dataTrain.event_narrative;
textDataTest = dataTest.event_narrative;
YTrain = dataTrain.event_type;
YTest = dataTest.event_type;

然后用监督学习训练数据。

发布了51 篇原创文章 · 获赞 1 · 访问量 623

猜你喜欢

转载自blog.csdn.net/weixin_44737922/article/details/105179952