В этом примере показано, как визуализировать текстовые данные с помощью облаков слова.
Text Analytics Toolbox расширяет функциональность wordcloud
(MATLAB) функция. Это добавляет поддержку создания облаков слова непосредственно от строковых массивов и создания облаков слова из моделей сумки слов и тем LDA.
Загрузите данные в качестве примера. Файл weatherReports.csv
содержит прогнозы погоды, включая текстовое описание и категориальные метки для каждого события.
filename = "weatherReports.csv"; T = readtable(filename,'TextType','string');
Извлеките текстовые данные из event_narrative
столбец.
textData = T.event_narrative; textData(1:10)
ans = 10x1 string array
"Large tree down between Plantersville and Nettleton."
"One to two feet of deep standing water developed on a street on the Winthrop University campus after more than an inch of rain fell in less than an hour. One vehicle was stalled in the water."
"NWS Columbia relayed a report of trees blown down along Tom Hall St."
"Media reported two trees blown down along I-40 in the Old Fort area."
""
"A few tree limbs greater than 6 inches down on HWY 18 in Roseland."
"Awning blown off a building on Lamar Avenue. Multiple trees down near the intersection of Winchester and Perkins."
"Quarter size hail near Rosemark."
"Tin roof ripped off house on Old Memphis Road near Billings Drive. Several large trees down in the area."
"Powerlines down at Walnut Grove and Cherry Lane roads."
Создайте облако слова из всех прогнозов погоды.
figure
wordcloud(textData);
title("Weather Reports")
Сравните слова в отчетах с маркирует "Hail"
и "Thunderstorm Wind"
. Создайте облака слова отчетов для каждой из этих меток. Задайте цвета слова, чтобы быть синими и пурпурными для каждого облака слова соответственно.
figure labels = T.event_type; subplot(1,2,1) idx = labels == "Hail"; wordcloud(textData(idx),'Color','blue'); title("Hail") subplot(1,2,2) idx = labels == "Thunderstorm Wind"; wordcloud(textData(idx),'Color','magenta'); title("Thunderstorm Wind")
Сравните слова в отчетах от состояний Флорида, Канзас и Аляска. Создайте облака слова отчетов для каждого из этих состояний в прямоугольниках и чертите границу вокруг каждого облака слова.
figure state = T.state; subplot(1,3,1) idx = state == "FLORIDA"; wordcloud(textData(idx),'Shape','rectangle','Box','on'); title("Florida") subplot(1,3,2) idx = state == "KANSAS"; wordcloud(textData(idx),'Shape','rectangle','Box','on'); title("Kansas") subplot(1,3,3) idx = state == "ALASKA"; wordcloud(textData(idx),'Shape','rectangle','Box','on'); title("Alaska")
Сравните слова в отчетах с материальным ущербом, о котором сообщают в тысячах долларов отчетам с повреждением, о котором сообщают в миллионах долларов. Создайте облака слова отчетов для каждой из этих сумм с цветом подсветки, синим и красным соответственно.
cost = T.damage_property; idx = endsWith(cost,"K"); figure wordcloud(textData(idx),'HighlightColor','blue'); title("Damage Reported in Thousands")
idx = endsWith(cost,"M"); figure wordcloud(textData(idx),'HighlightColor','red'); title("Damage Reported in Millions")
bagOfWords
| tokenizedDocument
| wordcloud