Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Применение MATLAB для решения аналитических задач моделирования. Учебное пособие
.pdf
Работа с файлами
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 precedes 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) позволяет вручную создавать все важные элементы
пользовательского интерфейса: различные панели, кнопки, списки и т.д.
Элементы графического интерфейса пользователя:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
