В этом примере показано, как подгонять модель темы к текстовым данным и визуализировать темы.
Модель латентного распределения Дирихле (LDA) является тематической моделью, которая обнаруживает базовые темы в наборе документов. Темы, характеризующиеся распределениями слов, соответствуют группам обычно сопутствующих слов. LDA является неконтролируемой тематической моделью, что означает, что она не требует маркированных данных.
Загрузите данные примера. Файл factoryReports.csv
содержит заводские отчеты, включая текстовое описание и категориальные метки для каждого события.
Импортируйте данные с помощью readtable
и извлеките текстовые данные из Description
столбец.
filename = "factoryReports.csv"; data = readtable(filename,'TextType','string'); textData = data.Description;
Токенизация и предварительная обработка текстовых данных и создание модели мешка слов.
Токенизируйте текст.
documents = tokenizedDocument(textData);
Чтобы улучшить подгонку модели, удалите из документов пунктуацию и стоповые слова (такие как «и», «из» и «из»).
documents = removeStopWords(documents); documents = erasePunctuation(documents);
Создайте модель мешка слов.
bag = bagOfWords(documents);
Подгонка модели LDA с семью темами с помощью fitlda
функция. Чтобы подавить подробный выход, установите 'Verbose'
опция для 0
.
numTopics = 7;
mdl = fitlda(bag,numTopics,'Verbose',0);
Визуализация первых четырех тем с помощью облаков слов.
figure for topicIdx = 1:4 subplot(2,2,topicIdx) wordcloud(mdl,topicIdx); title("Topic " + topicIdx) end
Для следующих шагов в текстовой аналитике можно попробовать улучшить подгонку модели с помощью различных шагов предварительной обработки и визуализации смесей тем. Для получения примера смотрите Анализ текстовых данных с помощью моделей топик.
bagOfWords
| erasePunctuation
| fitlda
| removeStopWords
| tokenizedDocument
| wordcloud