Этот пример показывает, как соответствовать модели темы к текстовым данным и визуализировать темы.
Модель Latent Dirichlet Allocation (LDA) является моделью темы, которая обнаруживает базовые темы в наборе документов. Темы, охарактеризованные дистрибутивами слов, соответствуют группам обычно слов co-появления. LDA является безнадзорной моделью темы, что означает, что он не требует маркированных данных.
Загрузите данные в качестве примера. Файл weatherReports.csv
содержит прогнозы погоды, включая текстовое описание и категориальные метки для каждого события.
Импортируйте данные с помощью readtable
, функционируют и извлекают текстовые данные из столбца event_narrative
.
filename = "weatherReports.csv"; data = readtable(filename,'TextType','string'); textData = data.event_narrative;
Маркируйте и предварительно обработайте текстовые данные и создайте модель сумки слов.
Маркируйте текст.
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