Анализ текстовой информации реферат

Обновлено: 05.07.2024

Постановка задачи

Предварительная обработка данных

Загрузим данные и посмотрим, что мы имеем:


ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖ. Р-Е
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО Р. КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСП КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ Р-НЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОУФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
УФМС РОССИИ ПО РК В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ МЕДВЕЖЬЕГОРСКОМ Р-ОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РК В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КОРЕЛИЯ В МЕДВЕЖИГОРСКОМ РАЙОНЕ
УФМС РОССИИ ПО Р. КАРЕЛИЯ МЕДВЕЖЬЕГОРСКОГО Р-НА
ОТДЕЛОМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ
УФМС РЕСПУБЛИКИ КАРЕЛИИ МЕДВЕЖЬЕГОРСКОГО Р-ОН
МЕДВЕЖЬЕГОРСКИМ ОВД

Как можно заметить нужно на поле действительно заполняется криво. Но для нормально кодирования мы должны привести это поле к более-менее нормальному (однозначному) виду.
Для начала я бы предложил привести все записи к одному регистру, например, чтобы все буквы стали строчными. Это легко сделать с помощью атрибута str, столбца DataFrame'a. Этот атрибут позволяет работать со столбцом как с строкой, а также выполнять различного рода поиск и замену по регулярным выражениям:


passport_div_code passport_issuer_name passport_issue_month/year
id
19 100010 отделением уфмс россии по республике карелия в. 04M2008
22 100010 отделением уфмс россии по р. карелия в медвежь. 10M2009
5642 100010 отделением уфмс россии по респ карелия в медве. 08M2008
6668 100010 отделением уфмс россии по республике карелия в. 08M2011
8732 100010 отделением уфмс россии по республике карелия в. 08M2012

C регистром определились. Далее надо по возможности избавиться от популярных сокращений, например район, город и т.д. Сделаем это с помощью регулярных выражений. Pandas предоставляет удобное использование регулярных выражений применительно к каждому столбцу. Это выглядит так:


Теперь избавимся от всех лишних символов, кроме русских букв, дефисов и пробелов. Это связано с тем, что паспорт о одинаковым подразделением может выдаваться отделами с разными номерами, и это ухудшит дальнейшую кодировку:

Теперь, собственно произведем расшифровку абривеатур и отформатируем полученные записи:


Теперь мы можем перейти к анализу данных.

Анализ данных

[раз, два, три, четыре]

Длина списка из уникальных ключей и будет длиной нашего закодированного текста (в нашем случае это 4). А номера элементов будут соответствовать, количеству раз встречи данного ключа с данным номером в строке:

раз два три --> [1,1,1,0]
три четыре два два --> [0,2,1,1]

Соответственно после кодировки, применения данного метода мы получим:

Значение
1,1,1,0
0,2,1,1
3,0,0,1

HashingVectorizer является смесью двух выше описанных методов. В нем можно и регулировать размер закодированной строки (как в FeatureHasher) и настраивать токенизатор (как в CountVectorizer). К тому же его производительность ближе к FeatureHasher.
Итак, вернемся к анализу. Если мы посмотрим по внимательнее на наш набор данных то можно заметить, что есть похожие строки но записанные по разному например: "… республика карелия. " и "… по республике карелия. ".
Соответственно, если мы попробуем применить один из методов кодирования сейчас мы получим очень похожие значения. Такие случаем можно минимизировать если все слова в записи мы приведем к нормальной форме.
Для этой задачи хорошо подходит pymorphy или nltk. Я буду использовать первый, т.к. он изначально создавался для работы с русским языком. Итак, функция которая будет отвечать за нормализацию и очиску строки выглядит так:

  • Сначала она преобразовывает строку в список
  • Затем для всех слов производит разбор
  • Если слово является числительным, предикативном, предлогом, союзом, частицей или междометием не включаем его в конечный набор
  • Если слово не попало в предыдущий список, берем его нормальную форму и добавляем в финальный набор


Как можно заметить при создании метода кроме токенизатора мы задаем еще один параметр n_features. Через данный параметр задается длина закодированной строки (в нашем случае строка кодируется при помощи 256 столбцов). Кроме того, у HashingVectorizer есть еще одно преимущество перед CountVectorizer, но сразу может выполнять нормализацию значений, что хорошо для таких алгоритмов, как SVM.
Теперь применим наш кодировщик к обучающему набору:

Построение модели

Для начала нам надо задать значения для столбца, в котором будут содержаться метки классов:


Модель будет выглядеть так:

Заключение

В качестве вывода нужно отметить, что полученная точность в 65% близка к угадыванию. Чтобы улучшить нужно при первичной обработке обработать грамматические ошибки и различного рода описки. Данное действие также скажется положительно и на словаре при кодировании поля, т. е. его размер уменьшиться и соответственно уменьшиться длина строки после ее кодировки.
Кроме того этап обучения тестовой выборки опущен специально, т. к. в нем нет ничего особенного, кроме его приведения к нужному виду (это можно легко сделать взяв за основу преобразования обучающей выборки)
В статье я попытался показать минимальный список этапов по обработке текстовой информации для подачи ее алгоритмам машинного обучения. Возможно делающим первые шаги в анализе данных данная информация будет полезной.

Постановка задачи

Предварительная обработка данных

Загрузим данные и посмотрим, что мы имеем:


ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖ. Р-Е
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО Р. КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСП КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ Р-НЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОУФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
УФМС РОССИИ ПО РК В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ МЕДВЕЖЬЕГОРСКОМ Р-ОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РК В МЕДВЕЖЬЕГОРСКОМ РАЙОНЕ
ОТДЕЛЕНИЕМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КОРЕЛИЯ В МЕДВЕЖИГОРСКОМ РАЙОНЕ
УФМС РОССИИ ПО Р. КАРЕЛИЯ МЕДВЕЖЬЕГОРСКОГО Р-НА
ОТДЕЛОМ УФМС РОССИИ ПО РЕСПУБЛИКЕ КАРЕЛИЯ В МЕДВЕЖЬЕГОРСКОМ
УФМС РЕСПУБЛИКИ КАРЕЛИИ МЕДВЕЖЬЕГОРСКОГО Р-ОН
МЕДВЕЖЬЕГОРСКИМ ОВД

Как можно заметить нужно на поле действительно заполняется криво. Но для нормально кодирования мы должны привести это поле к более-менее нормальному (однозначному) виду.
Для начала я бы предложил привести все записи к одному регистру, например, чтобы все буквы стали строчными. Это легко сделать с помощью атрибута str, столбца DataFrame'a. Этот атрибут позволяет работать со столбцом как с строкой, а также выполнять различного рода поиск и замену по регулярным выражениям:


passport_div_code passport_issuer_name passport_issue_month/year
id
19 100010 отделением уфмс россии по республике карелия в. 04M2008
22 100010 отделением уфмс россии по р. карелия в медвежь. 10M2009
5642 100010 отделением уфмс россии по респ карелия в медве. 08M2008
6668 100010 отделением уфмс россии по республике карелия в. 08M2011
8732 100010 отделением уфмс россии по республике карелия в. 08M2012

C регистром определились. Далее надо по возможности избавиться от популярных сокращений, например район, город и т.д. Сделаем это с помощью регулярных выражений. Pandas предоставляет удобное использование регулярных выражений применительно к каждому столбцу. Это выглядит так:


Теперь избавимся от всех лишних символов, кроме русских букв, дефисов и пробелов. Это связано с тем, что паспорт о одинаковым подразделением может выдаваться отделами с разными номерами, и это ухудшит дальнейшую кодировку:

Теперь, собственно произведем расшифровку абривеатур и отформатируем полученные записи:


Теперь мы можем перейти к анализу данных.

Анализ данных

[раз, два, три, четыре]

Длина списка из уникальных ключей и будет длиной нашего закодированного текста (в нашем случае это 4). А номера элементов будут соответствовать, количеству раз встречи данного ключа с данным номером в строке:

раз два три --> [1,1,1,0]
три четыре два два --> [0,2,1,1]

Соответственно после кодировки, применения данного метода мы получим:

Значение
1,1,1,0
0,2,1,1
3,0,0,1

HashingVectorizer является смесью двух выше описанных методов. В нем можно и регулировать размер закодированной строки (как в FeatureHasher) и настраивать токенизатор (как в CountVectorizer). К тому же его производительность ближе к FeatureHasher.
Итак, вернемся к анализу. Если мы посмотрим по внимательнее на наш набор данных то можно заметить, что есть похожие строки но записанные по разному например: "… республика карелия. " и "… по республике карелия. ".
Соответственно, если мы попробуем применить один из методов кодирования сейчас мы получим очень похожие значения. Такие случаем можно минимизировать если все слова в записи мы приведем к нормальной форме.
Для этой задачи хорошо подходит pymorphy или nltk. Я буду использовать первый, т.к. он изначально создавался для работы с русским языком. Итак, функция которая будет отвечать за нормализацию и очиску строки выглядит так:

  • Сначала она преобразовывает строку в список
  • Затем для всех слов производит разбор
  • Если слово является числительным, предикативном, предлогом, союзом, частицей или междометием не включаем его в конечный набор
  • Если слово не попало в предыдущий список, берем его нормальную форму и добавляем в финальный набор


Как можно заметить при создании метода кроме токенизатора мы задаем еще один параметр n_features. Через данный параметр задается длина закодированной строки (в нашем случае строка кодируется при помощи 256 столбцов). Кроме того, у HashingVectorizer есть еще одно преимущество перед CountVectorizer, но сразу может выполнять нормализацию значений, что хорошо для таких алгоритмов, как SVM.
Теперь применим наш кодировщик к обучающему набору:

Построение модели

Для начала нам надо задать значения для столбца, в котором будут содержаться метки классов:


Модель будет выглядеть так:

Заключение

В качестве вывода нужно отметить, что полученная точность в 65% близка к угадыванию. Чтобы улучшить нужно при первичной обработке обработать грамматические ошибки и различного рода описки. Данное действие также скажется положительно и на словаре при кодировании поля, т. е. его размер уменьшиться и соответственно уменьшиться длина строки после ее кодировки.
Кроме того этап обучения тестовой выборки опущен специально, т. к. в нем нет ничего особенного, кроме его приведения к нужному виду (это можно легко сделать взяв за основу преобразования обучающей выборки)
В статье я попытался показать минимальный список этапов по обработке текстовой информации для подачи ее алгоритмам машинного обучения. Возможно делающим первые шаги в анализе данных данная информация будет полезной.

* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.

Введение
Информационный анализ и его особенности
Метод анализа информации
Как успешно анализировать информацию?
Заключение
Список литературы

Что такое ИНФОРМАЦИОННЫЙ АНАЛИЗ? Для ответа на данный вопрос необходимо понимать что такое анализ сам по себе и что такое информация.
Итак, информация (от лат. informatio - разъяснение, изложение), первоначально - сведения, передаваемые одними людьми другим людям устным, письменным или каким-либо другим способом. Информация - по законодательству РФ - сведения о лицах, предметах, фактах, событиях, явлениях и процессах независимо от формы их представления. То есть информация это нечто не материальное. Нечто такое, что циркулирует между людьми, при этом оставаясь неосязаемым. Не нужно путать информацию с ее носителем – бумагой, дискетой, пленкой, жестким диском компьютера, памятью человека, радиоволнами, механическими колебаниями (звуком) – это все носители информации, но не сама информация. Мы можем говорить о форме представления информации, о способе ее фиксации, но ничего не можем сказать о информации в чистом виде.
А что такое что такое АНАЛИЗ? Анализ (из греч.) разбор, разложение целого на составные части его. Анализ - метод научного исследования явлений и процессов, в основе которого лежит изучение составных частей, элементов изучаемой системы. То есть деление объекта изучения на составные части, изучение этих составных частей и их свойств в отдельности, и построение выводов об исходном предмете и его свойствах на основе знаний полученных о его составных частях. Можно сформулировать ближе к проблеме бизнесразведки – извлечение из разрозненных данных новых знаний о предмете интереса (объекте изучения).
Попробовав соединить два предыдущих определения получается, что информационный анализ - это разложение на составляющие и исследование передаваемых людьми сведений. Если опустить энциклопедические формулировки, то анализ можно определить как деятельность по изучению данных, умозаключения по положению дел в настоящий момент, построению прогнозов на основе этих данных и выработке рекомендаций.

Компромисс достигается с помощью четырёх основополагающих понятий:
существенности — в модель включаются только компоненты, существенные по отношению к целям анализа;
элементарности — доведение декомпозиции до простого, понятного, реализуемого результата;
постепенной детализации модели;
итеративности — возможность введения новых элементов в основания и продолжение декомпозиции по ним на разных ветвях дерева.
• oпpeдeлeниe нaпpaвлeний инфopмaциoнныx пoтoкoв и иx xapaктepиcтик;
• oцeнкy эффeктивнocти фyнкциoниpoвaния инфopмaциoннoй пoдcиcтeмы;
• пpинятиe peшeния o нeoбxoдимocти coвepшeнcтвoвaния инфopмaциoннoй пoдcиcтeмы

Анализ документов – один из широко применяемых и эффективных методов сбора и анализа первичной информации. Документы с различной степенью полноты отражают социум общества. В них содержатся сведения о процессах и результатах деятельности человека; вследствие этого документальная информация представляет большой интерес.
Виды документов. К этому понятию в прикладной социологии относятся в первую очередь различного рода материалы (документы), предназначенные для хранения и передачи информации.
Существует ряд оснований для классификации документов. По статусу документы различают на официальные и неофициальные; по форме изложения – письменные (более широко – вербальные) и статистические. По своим функциональным особенностям документы классифицируются на информационные, регулятивные, коммуникативные и культурно-воспитательные.
Принципиальное значение для исследователя имеют официальные документы, которые отражают общественные, социальные и экономические связи в обществе. Все эти документы составляются и утверждаются государственными или иными органами, учреждениями и могут выступать в качестве юридического доказательства.
Большое значение имеет изучение неофициальных документов. Среди них выделяются личные документы, такие как дневники, мемуары, личная переписка, записки профессионального характера. Неофициальные документы позволяют вскрыть глубинные социально-политические механизмы образования ценностных ориентаций, понять историческую обусловленность стереотипов поведения, найти основу для выделения социальных типов в обществе.
Следует выделить ещё одно основание для типологии документов – их целевое назначение. Выделяют: документы созданные независимо от исследователя, и документы “целевые”, то есть подготовленные точно в соответствии с программой, задачами социологического исследования. К первой группе относятся те документы, существование которых ни прямо, ни косвенно не обусловлено техникой проведения социологического исследования: связанные с темой исследования официальные документы, статистические сведения, материалы прессы, личная переписка и т.д. Вторая группа документов включает: ответы на открытые вопросы анкеты и тексты интервью, записи наблюдений, отражающих мнения и поведение респондентов; справки официальных и иных организаций, выполненные по заказу исследователей; статистическую информацию, собранную и обобщённую в ориентации на определённое социологическое исследование.
Информацию, содержащуюся в документах, принято разделять на первичную и вторичную. В первом случае речь идёт об описании конкретных ситуаций, об освещении деятельности отдельных субъектов социума. Вторичная информация носит более обобщённый, аналитический характер; в ней, как правило, отражены более глубоко скрытые социальные связи.
Критерии отбора документов для изучения. Самостоятельные этапы анализа документов – отбор источников информации и комплектование выборочной совокупности подлежащих анализу материалов. Основой для этого служит программа исследований.
В качестве средства проверки надёжности, достоверности информации и одновременно анализа их содержания является “внешнее” и “внутреннее” исследование документов. Внешний анализ – это изучение обстоятельств возникновения документа, его исторического и социального контекста. Внутренний анализ – это и есть собственно изучение содержания документа, всего того, о чём свидетельствует текст источника, и тех объективных процессов и явлений, о которых сообщает документ.
Виды анализа документов. Во всём многообразии исследовательских приёмов, используемых при изучении документов, выделяют два основных вида: качественный анализ (иногда его называют традиционным) и формализованный, носящий ещё название контр-анализа. Два эти подхода к изучению документальной информации хотя и различаются во многом, однако могут в достаточно высокой степени дополнять друг друга, так как два этих метода вместе дадут всесторонний взгляд на проблему.
Качественный анализ зачастую служит предпосылкой последующего формализованного изучения документов. Как самостоятельный метод особое значение он приобретает при изучении уникальных документов: их число всегда крайне мало и поэтому нет надобности в количественной обработке информации. Поэтому суть традиционного подхода заключается в углублённом логическом исследовании содержания документов.
Стремление в максимальной степени избежать субъективизма, потребность в социологическом изучении и обобщении большого объёма информации, ориентация на использование современной вычислительной техники при обработке содержания текстов привели к становлению метода формализованного, качественно-количественного изучения документов (контент-анализ).
При этом методе содержание текста определяется как совокупность имеющихся в нём сведений, оценок, объединённых в некую совокупность единой концепцией, замыслом.
Процедура формализованного анализа документов начинается с выделения двух единиц анализа: смысловых (качественных) и единиц счёта. Цель исследования – отыскать индикаторы, указывающие на наличие в документе темы, значимой для анализа, и раскрывающие содержание текстовой информации.
Плодотворным оказывается при анализе текстов деятельностный (проблемный) подход. В этом случае весь текст рассматривается как описание конкретной проблемной ситуации, в которой есть ряд субъектов и отношения между ними. При формализованном анализе документов всесторонне рассматривают саму деятельность, а также выделяют её субъекты, цели и мотивы поступков, совершаемых ими; обстоятельства, причины, породившие потребность в той или иной деятельности (бездеятельность – это тоже вид деятельности); объект её направления.

Анализируя предлагаемые информационные поводы и тексты, участвуя в дискуссиях Клуба, предлагаем Вам придерживаться следующих правил, которые обеспечат наибольший прогресс Ваших аналитических и адаптивных способностей в процессе дискуссий:
Никогда не верьте словам, принимайте к сведению только конкретные факты.
Все что говорится и пишется, обязательно имеет целью сокрытие истины. Сокрытие истины является одним из важнейших мотивов любой человеческой деятельности, включая вербальную. Этот мотив, часто наряду с другими, присутствует у автора любого текста ВСЕГДА. В большинстве случаев автор желает скрыть информацию не только от Вас, но и от себя - то есть его бессознательное осуществляет неуправляемое цензурирование формулируемых им положений.
Никогда не принимайте к сведению информацию, содержащуюся в любом тексте. Мысль изреченная есть ложь.
Основным источником информации в любом тексте являются оговорки, ошибки и описки автора. Всегда обращайте на них внимание и старайтесь интерпретировать их на основе известных Вам элементов и свойств контекстов, имеющих отношение к обсуждаемому предмету.
Сопоставляйте источники. Обращайте внимание на все логические противоречия внутри текстов и между текстами различных источников. Старайтесь интерпретировать противоречия на основе известных Вам элементов и свойств контекстов, имеющих отношение к обсуждаемому предмету.
Читая любой текст, все время держите в уме вопрос, кому выгодна публикация излагаемых фактов и предлагаемая их интерпретация. Насколько эти интересы близки Вашим?
При анализе аргументации партнеров всегда старайтесь классифицировать аргументы по признаку "кому это выгодно", по характеру стоящих за ними интересов. Смело переходите от анализа аргументов к обсуждению самих этих интересов. Только после их прояснения возвращайтесь к анализу собственно аргументации.
При обсуждении частных вопросов практикуйте переход на метауровень, к обсуждению более общих противоречий. Возвращайтесь к анализу собственно аргументации по обсуждаемому вопросу после прояснения общих принципов. Без решения общих вопросов Вы будете неизбежно возвращаться к ним, решая частные.
В процессе дискуссии рефлексируйте свое отношение к процессу.
Избегайте идентификации своей аргументации и своей личности.
Избегайте фиксаций на отстаиваемых позициях. Все время старайтесь уловить грань, за которой позиция превращается в idee fix, а ее отстаивание начинает восприниматься как самоутверждение. Старайтесь не переходить эту грань.
Не верьте, что в спорах рождается истина. В спорах рождается только неприязнь друг к другу. Избегайте перехода дискуссии в спор.
Дискуссия и спор различаются по характеру целей сторон. Цель спора - защита своих интересов и получение максимальной выгоды. Цель дискуссии - прояснение позиций. Спор ведут противники, дискуссию - партнеры.
Абсолютной истины не существует. В дискуссии мы не ищем истину, а проясняем позиции - как свою, так и партнеров. Такое прояснение полезно для целей выработки адекватных стратегий поведения и повышения адаптивности к окружающей информационной среде.

Обмен информацией был и является одной из отличительных особенностей человеческой деятельности. Общение людей друг с другом, их взаимоотношения с внешним миром, их производственная, научная и общественная деятельность тесно связаны с информационными процессами – процессами восприятия, передачи, обработки, поиска, хранения и отображения информации. Без обмена информацией невозможно управление различными объектами, организация производственной, научной и общественной жизни человека. Процессы общения также неразрывно связаны с информационным обменом, коммуникацией, установлением информационных связей между обучаемыми и обучающим.
Накопление человечеством опыта и знаний при освоении природы смешалось с освоением информации.
Сначала из поколения в поколение информация передавалась устно. Это были сведения о профессиональных навыках, например о приемах охоты, обработки охотничьих трофеев, способах земледелия и др. Но затем информацию стали фиксировать в виде графических образов окружающего мира. Так, первые наскальные рисунки, изображающие животных, растения, людей, появились примерно 20 – 30 тыс. лет назад.
Поиск более современных способов фиксирования информации привел к появлению письменности. Вначале люди записывали расчеты с покупателями, а затем написали и первое слово.

Анализ структурированной информации, хранящейся в базах данных, требует предварительной обработки: проектирования БД, ввод информации по определенным правилам, размещение ее в специальных структурах (например, реляционных таблицах) и т. п. Таким образом, непосредственно для анализа этой информации и получения из нее новых знаний необходимо затратить дополнительные усилия. При этом они не всегда связаны с анализом и не обязательно приводят к желаемому результату. Из-за этого КПД анализа структурированной информации снижается. Кроме того, не все виды данных можно структурировать без потери полезной информации. Например, текстовые документы практически невозможно преобразовать в табличное представление без потери семантики текста и отношений между сущностями. По этой причине такие документы хранятся в БД без преобразований, как текстовые поля (BLOB-поля). В то же время в тексте скрыто огромное количество информации, но ее неструктурированность не позволяет использовать алгоритмы Data Mining. Решением этой проблемы занимаются методы анализа неструктурированного текста. В западной литературе такой анализ называют Text Mining.

Методы анализа в неструктурированных текстах лежат на стыке нескольких областей: Data Mining, обработка естественных языков, поиск информации, извлечение информации и управление знаниями.

В работе [41] по аналогии с термином Data Mining (см. гл. 4) дано следующее определение:

Обнаружение знаний в тексте — это нетривиальный процесс обнаружения действительно новых, потенциально полезных и понятных шаблонов в неструктурированных текстовых данных.

Как видно, от определения Data Mining оно отличается только новым понятием "неструктурированные текстовые данные". Под такими знаниями понимается набор документов, представляющих собой логически объединенный текст без каких-либо ограничений на его структуру. Примерами таких документов являются: Web-страницы, электронная почта, нормативные документы и т. п. В общем случае такие документы могут быть сложными и большими и включать в себя не только текст, но и графическую информацию. Документы, использующие язык расширяемой разметки XML (eXtensible Markup Language), стандартный язык обобщенной разметки SGML (Standard Generalised Markup Language) и другие подобные соглашения по структуре формирования текста, принято называть полуструктурированными документами. Они также могут быть обработаны методами Text Mining.

Рис. 9.1. Этапы Text Mining

Процесс анализа текстовых документов можно представить как последовательность нескольких шагов (рис. 9.1).

1. Поиск информации. На первом шаге необходимо идентифицировать, какие документы должны быть подвергнуты анализу, и обеспечить их доступность. Как правило, пользователи могут определить набор анализируемых документов самостоятельно — вручную, но при большом количестве документов необходимо использовать варианты автоматизированного отбора по заданным критериям.

2. Предварительная обработка документов. На этом шаге выполняются простейшие, но необходимые преобразования с документами для представления их в виде, с которым работают методы Text Mining. Целью таких преобразований является удаление лишних слов и придание тексту

Анализ текстовой информации — Text Mining

более строгой формы. Подробнее методы предварительной обработки будут описаны в разд. 9.1.2.

3. Извлечение информации. Извлечение информации из выбранных документов предполагает выделение в них ключевых понятий, над которыми в дальнейшем будет выполняться анализ. Данный этап является очень важным и будет подробно описан в разд. 9.1.3.

4. Применение методов Text Mining. На данном шаге извлекаются шаблоны

и отношения, имеющиеся в текстах. Данный шаг является основным в процессе анализа текстов, и практические задачи, решаемые на этом шаге, описываются в разд. 9.1.4.

5. Интерпретация результатов. Последний шаг в процессе обнаружения знаний предполагает интерпретацию полученных результатов. Как правило, интерпретация заключается или в представлении результатов на естественном языке, или в их визуализации в графическом виде.

Визуализация также может быть использована как средство анализа текста. Для этого извлекаются ключевые понятия, которые и представляются в графическом виде. Такой подход помогает пользователю быстро идентифицировать главные темы и понятия, а также определить их важность.

9.1.2. Предварительная обработка текста

Одной из главных проблем анализа текстов является большое количество слов в документе. Если каждое из этих слов подвергать анализу, то время поиска новых знаний резко возрастет и вряд ли будет удовлетворять требованиям пользователей. В то же время очевидно, что не все слова в тексте несут полезную информацию. Кроме того, в силу гибкости естественных языков формально различные слова (синонимы и т. п.) на самом деле означают одинаковые понятия. Таким образом, удаление неинформативных слов, а также приведение близких по смыслу слов к единой форме значительно сокращают время анализа текстов. Устранение описанных проблем выполняется на этапе предварительной обработки текста.

Обычно используют следующие приемы удаления неинформативных слов и повышения строгости текстов:

удаление стоп-слов. Стоп-словами называются слова, которые являются вспомогательными и несут мало информации о содержании документа. Обычно заранее составляются списки таких слов, и в процессе предварительной обработки они удаляются из текста. Типичным примером таких слов являются вспомогательные слова и артикли, например: "так как", "кроме того" и т. п.;

стемминг — морфологический поиск. Он заключается в преобразовании каждого слова к его нормальной форме. Нормальная форма исключает

склонение слова, множественную форму, особенности устной речи и т. п. Например, слова "сжатие" и "сжатый" должны быть преобразованы в нормальную форму слова "сжимать". Алгоритмы морфологического разбора учитывают языковые особенности и вследствие этого являются языковозависимыми алгоритмами;

N-граммы — это альтернатива морфологическому разбору и удалению стоп-слов. N-грамма — это часть строки, состоящая из N символов. Например, слово "дата" может быть представлено 3-граммой "_да", "дат", "ата", "та_" или 4-граммой "_дат", "дата", "ата_", где символ подчеркивания заменяет предшествующий или замыкающий слово пробел. По сравнению со стеммингом или удалением стоп-слов, N-граммы менее чувствительны к грамматическим и типографическим ошибкам. Кроме того, N-граммы не требуют лингвистического представления слов, что делает данный прием более независимым от языка. Однако N-граммы, позволяя сделать текст более строгим, не решают проблему уменьшения количества неинформативных слов;

приведение регистра. Этот прием заключается в преобразовании всех символов к верхнему или нижнему регистру. Например, все слова "текст", "Текст", "ТЕКСТ" приводятся к нижнему регистру "текст".

Наиболее эффективно совместное применение перечисленных методов.

9.1.3. Задачи Text Mining

В настоящее время в литературе описано много прикладных задач, решаемых с помощью анализа текстовых документов. Это и классические задачи Data Mining: классификация, кластеризация, и характерные только для текстовых документов задачи: автоматическое аннотирование, извлечение ключевых понятий и др.

Классификация (classification) — стандартная задача из области Data Mining. Ее целью является определение для каждого документа одной или нескольких заранее заданных категорий, к которым этот документ относится. Особенностью задачи классификации является предположение, что множество классифицируемых документов не содержит "мусора", т. е. каждый из документов соответствует какой-нибудь заданной категории.

Частным случаем задачи классификации является задача определения тематики документа [43].

Целью кластеризации (clustering) документов является автоматическое выявление групп семантически похожих документов среди заданного фиксированного множества. Отметим, что группы формируются только на основе попарной схожести описаний документов, и никакие характеристики этих групп не задаются заранее [43].

Читайте также: