Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Применение MATLAB для решения аналитических задач моделирования. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Работа с файлами
101
ПОЛУЧЕНИЕ ДАННЫХ
Data Acquisition Toolbox предоставляет приложения и функции для конфигурации оборудования сбора данных, чтения данных в MATLAB или Simulink, а также управления и записи данных в выходные каналы подключенных приборов. Data Acquisition Toolbox поддерживает множе­ство различного оборудования, включая USB, PCI, PXI, PCI Express, PXI Express устройств от NI и других производителей.
Приложения из Data Acquisition Toolbox позволяют интерактивно создавать и запускать сессии сбора данных. При помощи данных прило­жений вы можете генерировать MATLAB код, эквивалентный проведен­ной сессии, чтобы в дальнейшем автоматизировать данный процесс. Функции данного toolbox’а позволяют гибко управлять каналами АЦП/ЦАП, счетчиками и таймерами, цифровыми входами и выходами подключенного к MATLAB оборудования. Кроме того, вы можете орга­низовать доступ к специфичным возможностям устройства или синхрони­зировать работы нескольких устройств.
Вы можете анализировать данные в режиме онлайн или сохранить их для постобработки. Кроме того, вы можете организовать автоматиче­ское тестирование различных устройств и интерактивно обновлять его результаты.
Для использования сигнала звуковой карты в роли входного, необ­ходимо ввести:
Применение Matlab для решения аналитических задач моделирования
102
ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ТЕКСТА
Интеллектуальный анализ текста также называют автоматизацией
извлечения знаний из текстовых данных. Text mining служит для провер­ки соответствия содержания текста по вопросам решаемой задачи. В рам­ках интеллектуального анализа выявляются сущности, связи между ними, классифицируются документы и т.д.
В среде Matlab подобные функции предоставляет Text Analytics Toolbox. Главным конкурентом Matlab в данной сфере является язык про­граммирования R. На различных форумах довольно много статей и вопро­сов по сравнению их возможностей. Существует отдельный сайт по ана­лизу текста с помощью R. Ниже приведен пример кода на языке R.
library(tidyverse) library(tidytext)
x <- 'I am working on text mining using R, I would like to identify if some words precede my focal keyword by three or fewer words. For instance, my focal keyword is compatibility and I wanted to know if the word limited pre­cedes my keyword by three or fewer words. Thus, I wanted to get frequency count in a text regarding how many times the following combination appears (X=any other word):
limited compatibility limited X compatibility limited X X compatibility
Any suggestions are welcome. Thanks.'
data_frame(x) %>% unnest_tokens(line, x, 'lines') %>% mutate(line_number = row_number()) %>% unnest_tokens(ngram, line, 'skip_ngrams', n = 2, k = 2) %>% filter(grepl('limited', ngram), grepl('compatibility', ngram)) #> # A tibble: 3 × 2 #> line_number ngram #> <int> <chr> #> 1 2 limited compatibility
Интеллектуальный анализ текста
103
#> 2 3 limited compatibility #> 3 4 limited compatibility8
Text Analytics Toolbox помогает проводить анализ и предваритель-
ную обработку текстовых данных. Созданные с помощью данного прило­жения модели применяются в анализе покупательских настроений, прове­дении прогнозного обслуживания и других сферах.
Text Analytics Toolbox включает в себя инструменты для обработки необработанного текста из таких источников, как журналы оборудования, новостные ленты, социальные опросы, операторские отчеты и профили в социальных сетях. Извлекать сырой текст можно из популярных файло­вых форматов после их предварительной обработки. Из необработанного текста можно извлекать как слова по отдельности, так и целые блоки. Существуют опции для преобразования текста в числовой формат и со­здании на его основе статистических моделей.
Используя методы машинного обучения, такие как LSA, LDA и век­торное представление слов, можно находить кластеры и создавать объекты из многомерных наборов текстовых данных. Функции, созданные с помо­щью Text Analytics Toolbox, можно комбинировать с функциями из других источников данных для создания моделей машинного обучения, использу­ющих преимущества текстовых, числовых и других типов данных.
Текстовые данные можно извлечь из таких современных источни­ков, как профили в социальных сетях, ленты новостей, журналы специ­ального оборудования, разнообразные отчеты и социальные опросы.
Matlab позволяет визуализировать текстовые данные различными способами. Например, можно создать облако тегов с наглядным выделе­нием популярных слов с помощью размера шрифта и ярких цветов.
Извлечь текстовые данные для последующего анализа можно из отдельных файлов с помощью инструментов для импорта текстовых дан­ных в систему MATLAB или из больших коллекций разнообразных фай­лов различных форматах, например, HTML, PDF, программы MS Office.
Изучение наборов текстовых данных, подготовленных специаль­ным образом в виде облаков тегов и точечных диаграмм текста, возможно с помощью визуального анализа.
8
Пример с сайта coderoad.ru «R интеллектуальный анализ текста – как опре-
делить слово предшествующее ключевому».
Применение Matlab для решения аналитических задач моделирования
104
Подробно об этом написано на официальном сайте представителя
Matlab9.
К задачам text mining относят поиск документов, удовлетворяющий
поисковым запросам (релевантных) и последующее извлечение нужной для анализа информации из них. Как правило, система, позволяющая ре­шать такие задачи, включает в себя следующие блоки:
1. блок сбора и стандартизации документов;
2. блок классификации и анализа документов.
На первом этапе обработки происходит систематический сбор нуж-
ных документов с последующим извлечением структурной информации, а также получение новой информации о документах, например, автор и дата создания (метаинформация). В конце этапа метаинформация приводится к стандартизованному виду для удобства последующей обработки.
После выбора документов (возможно, с предварительной фильтра-
цией) переходят на этап классификации и анализа документов, используя разнообразные text mining алгоритмы.
Среди основных алгоритмов и подходов к текстовому анализу вы-
деляют следующие группы:
1. стандартизация и предварительная обработка текста;
2. поиск сущностей и отношений между ними на основе систем
правил;
3. применение статистических методов и проведение машинного
обучения.
Иногда на практике используются комбинации перечисленных вы-
ше подходов.
Этап нормализации и предварительной подготовки текста заключа-
ется в дроблении сложных предложений на отдельные слова и последу­щем удаление из текста стоп-слов или шумовых слов (stop words) (пред­логов, междометий и т.д.). Далее слова приводятся к нормальной форме и определяются части речи. Например "студенты" => "студент" или "изу­чал" => "изучать"). Данный этап пропускается для некоторых языков.
Система правил основана на подготовке экспертом специальных
правил поиска интересующих сущностей в нужной предметной области.
Примеры правил включают следующее:
9
https://exponenta.ru/Text-Analytics-Toolbox
Интеллектуальный анализ текста
105
«выбрать товары в пределах 3-х предложений от названия компа­нии»;
«выбрать услуги, соответствующие шаблону: <имя компании> предоставляет <имя услуги>»;
«отсеять документы, в которых меньше 3-х упоминаний о продук­ции компании».
Среди преимуществ и недостатков системы правил выделяют сле­дующие:
Преимущества:
• Нет необходимости в наборе обучающих данных и их разметке.
• Для пользователя принимаемые системой решения прозрачны и
легко интерпретируются.
Недостатки:
• Могут потребоваться значительные усилия для создания системы
правил, обеспечивающих требуемую точность принятия решений;
• Правила не способны обрабатывать новые случаи с интересую-
щей аналитиков информацией, отсутствующей в правилах, даже если по структуре они имеют минимальные отличия от существующих.
Статистические методы и машинное обучение
Из-за сложной и трудно формализуемой структуры текстовых дан- ных использование методов машинного обучения весьма нетривиально. Поиск решения, дающего приемлемый результат в контексте решаемой задачи, может потребовать значительных усилий и сочетания нескольких алгоритмов и подходов. Среди используемых алгоритмов можно выде­лить следующие:
Алгоритмы предварительной
обработки текста
Помимо базовых подходов с нормализацией словоформ и удалени­ем пропускаемых слов, некоторым алгоритмам необходимо представлять текст или слова в числовой форме – в виде вектора или последовательно­сти векторов. Для этого можно использовать следующие алгоритмы:
Применение Matlab для решения аналитических задач моделирования
106
One-hot encoding – это простейший алгоритм, преобразующий тек-
стовые слова в векторы длины N с ненулевым значением в i-й позиции, где N – размер словаря языка, а i – номер слова в этом словаре.
Word2vec – это группа алгоритмов, которые также переводят слово
в вектор. Но результирующий вектор имеет гораздо меньшую размер­ность, чем в случае горячего кодирования, и содержит действительные числа. В этом случае близкие по смыслу слова будут иметь близкие друг к другу векторы.
Bag of words – этот алгоритм строит вектор частоты встречаемости
слов в тексте. Это позволяет получить вектор, описывающий текст в целом, но практически полностью игнорируется информация о структуре текста.
TF-IDF – для каждого текста строится вектор, каждый элемент ко-
торого определяется как отношение частоты слов в тексте к обратной ча­стоте слов во всех документах. Обратная мера частоты может быть опре­делена разными способами, но основная ее идея заключается в следую­щем. Если слово широко используется в языке, то оно часто встречается в документах и вряд ли представляет ценность для их классификации. По­этому такие слова будут иметь меньшую обратную частотность. С другой стороны, редкие слова будут иметь большую обратную частоту.
Алгоритмы поиска именованных сущностей
и связей между ними
Задача состоит в том, чтобы найти определенные термины (назва­ния компаний, продукты, услуги и т.д.) и пометить их соответствующей категорией, а также отношения между ними. Примеры алгоритмов и мо­делей, используемых для этих целей:
• Скрытая марковская модель (HMM) – представляет статистиче-
скую модель в виде ориентированного графа.
• Условное случайное поле (CRF) – как и HMM, это статистическая
модель, но в ней используется неориентированный граф.
• Нейронные сети, в частности LSTM и CNN. LSTM являются кон-
текстно-зависимыми из-за того, что они повторяются и сохраняют ин­формацию о контексте в процессе. CNN извлекает данные на основе шаб­лонов, которые раскрывают важные особенности.
Интеллектуальный анализ текста
107
Общие методы машинного обучения
При использовании скользящего окна появляется возможность ис­пользовать распространенные методы, такие как логистическая регрессия, машины опорных векторов, наивный байесовский метод, дерево решений и другие, требующие на входе фиксированного набора признаков.
Алгоритмы классификации и тематического моделирования
документов
Цель состоит в том, чтобы кратко описать обрабатываемые доку­менты. Например, определение типа документа или тем документа. Для этого вы можете использовать:
• Скрытое распределение Дирихле (LDA) – это статистическая мо-
дель, основанная на распределении Дирихле, которое рассматривает текст как смесь тем.
• Латентный семантический анализ (ЛАС) – метод, основанный на
представлении корпуса в виде термино-документной матрицы и его де­композиции с целью определения тематики документов.
• Аддитивная регуляризация тематических моделей (ARTM) – этот
метод использует существующие статистические модели, но добавляет к ним регуляризацию, чтобы лучше соответствовать структуре теста.
Общие методы машинного обучения используют в качестве вход­ных данных результаты Bag of words, TF-IDF или других алгоритмов.
Точность результатов алгоритмов может сильно различаться в за­висимости от поставленной задачи. Например, при изменении тематики текста или искомых именованных сущностей одни алгоритмы могут начать работать лучше других. Поэтому при построении систем обработ­ки текстов всегда есть смысл попробовать несколько подходов и выбрать лучший или объединить результаты своей работы.
Преимущества и недостатки статистических методов
и машинного обучения
Преимущества:
• автоматический поиск связей между признаками текста и требуе-
мым результатом;
Применение Matlab для решения аналитических задач моделирования
108
• умение учитывать сложные связи в тексте;
• умение обобщать (то есть правильно обрабатывать случаи, кото-
рых не было в обучающей выборке).
Недостатки:
• требуется обучающая выборка. В зависимости от алгоритма мо-
жет потребоваться значительный объем обучающих данных;
• трудности в интерпретации решений, принимаемых системой.
Это затрудняет поиск и устранение проблем, если система в некоторых случаях выдает неверные результаты.
Лабораторная работа № 15.
Подготовка текста, анализ и моделирование данных
В соответствии с вариантами выполнить задание из табл. 40.
Таблица 40
Варианты заданий для лабораторной работы № 15
№
варианта
Задание
1
Извлеките текст из task.txt
Подготовьте текстовые данные для анализа. Создайте облако слова из текста
2
Проанализируйте код HTML из
https://docs.exponenta.ru/ simulink/index.html
Найдите элементы HTML. Создайте облако слов из текста гиперссылок
3
Извлеките текст из task.pdf
Подготовьте текстовые данные для анализа. Сотрите пунктуацию из документов
4
Извлеките текст из task.txt
Подготовьте текстовые данные для анализа
5
Извлеките табличные дан­ные из factoryReposts.csv
Создайте облако слова из текста
6
Извлеките текст из task.pdf
Подготовьте текстовые данные для анализа. Сотрите пунктуацию из документов
7
Извлеките табличные дан­ные из factoryReposts.csv
Удалите слова, которые не появля­ются больше, чем два раза в модели сумки слов
Интеллектуальный анализ текста
109
Окончание табл. 40
№
варианта
Задание
8
Извлеките текст из task.txt
Подготовьте текстовые данные для анализа. Создайте облако слова из текста
9
Извлеките текст из task.pdf
Создайте облако слова из текста. Сотрите пунктуацию из документов
10
Извлеките текст из task.txt
Подготовьте текстовые данные для анализа. Создайте облако слова из текста
Применение Matlab для решения аналитических задач моделирования
110
РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
Существует два способа создания пользовательского интерфейса
GUI в среде Matlab. Первый способ (GUI programmatically) состоит в про­граммировании каждого отдельного элемента управления в специальном m­файле. В таких файлах сохранятся описания окна, кнопок, фоновые изоб­ражения и другие элементы. Также в m-файлах хранятся свойства функций обратного вызова (Callback) всех необходимых элементов, запускаемых при обращении к ним. Второй полуавтоматический способ создания пользова­тельского интерфейса заключатся в использовании инструмента GUI Layout Editor – с помощью интерактивного инструмента GUIDE (рис. 52).
Если вызвать команду GUI, на панели управления появляется па-
нель выбора вида редактора для визуальной разработки интерфейса со­здаваемой MatLab программы.
Рис. 52. Редактор пользовательского интерфейса
Чтобы вызвать редактор GUIDE из командной строки, вводится
следующая команда:
>> guide GUI Layout Editor считается более подходящим для начинающих
пользователей, в профессиональном программировании чаще применяет­ся программное создание GUI. Редактор GUI Layout Editor (команда guide в консоли Matlab) позволяет вручную создавать все важные элементы пользовательского интерфейса: различные панели, кнопки, списки и т.д.
Элементы графического интерфейса пользователя:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]