Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Посмотреть оригинал

МОДЕЛИРОВАНИЕ ТЕКСТОВ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ

В результате освоения данной главы обучающийся будет: знать

  • • особенности векторных моделей представления текстов; уметь
  • • строить векторные модели представления текста и применять их для решения задач, связанных с обработкой текстов;

владеть

• методами латентного семантического анализа.

Векторная модель представления текстов

Моделирование можно рассматривать как замещение реального объекта его условным эквивалентом, именуемым моделью и обеспечивающим близкое к реальному объекту поведение в рамках приемлемых допущений и ограничений1. Моделирование позволяет уменьшить сложность реальных объектов, так как модели передают только наиболее существенные параметры (свойства) объектов. В частности, математическая модель определяется как эквивалент объекта, отражающий в математической форме его важнейшие свойства[1] [2].

В данном разделе мы будем рассматривать в качестве объектов моделирования тексты на естественном языке. В большинстве случаев ключевыми параметрами моделей, представляющих тексты, являются слова, содержащиеся в этих текстах. Векторная, или, как ее еще называют, векторно-пространственная, модель ( VSM - vector space model) является одной из таких моделей, основанных на ключевых словах. Ранее мы уже изложили в общих чертах суть этой модели при рассмотрении задачи информационного поиска, сейчас дадим ее формальное описание.

Пусть имеется коллекция текстовых документов D = (d{, d2, dm) и задан словарь терминов этой коллекции Т = (tv t2, tf).

Модель VSM представляет каждый документ этой коллекции с помощью словаря Г как я-мерный вектор, координатами которого являются частоты вхождений терминов словаря в этот документ:

В некоторых модификациях модели VSM частоты вхождений терминов заменяют весами, которые, по сути, представляют собой те же частоты, только не абсолютные, а относительные. Существует несколько стандартных методик взвешивания терминов.

В методике Tf вес термина в документе определяется как его частота, деленная на общее количество слов документа. Таким образом, оценивается важность термина в пределах одного документа:

В методике TfIdf вес термина в документе определяется как произведение частоты вхождения термина в документ (Tf) и обратной документной частоты (Idf). Таким образом, оценивается важность термина в пределах всей коллекции документов. Следовательно, больший вес получают термины с высокой частотой вхождения в данный документ и с низкой частотой употребления в других документах:

где |D| — общее число документов в коллекции; Df} число документов, в которых встречается термин tv

Если документы сильно различаются по длине (количеству слов), то веса терминов нормируют относительно друг друга. Без нормирования вес термина в документе будет тем меньше, чем длиннее документ. Как правило, нормирование весов осуществляют путем деления на евклидову норму (длину вектора документа):

Особый интерес при построении векторной модели представляет формирование словаря коллекции Т = (?1? ?2> •••> tn). Чем больше коллекция текстов, тем выше размерность словаря. Уменьшение размерности словаря позволяет снизить вычислительную сложность алгоритмов обработки текстов. С этой целью словарь коллекции, во-первых, нормализуется, во-вторых, из него исключаются стоп-слова, в-третьих, синонимы свертываются в семантические концепты.

Нормализация означает, что вместо множества словоформ одного и того же термина в словарь включается только одна форма — нормальная, т.е. лемма. Например, словоформы «он», «его», «ему» включаются в словарь один раз — в виде леммы «он».

Исключение стоп-слов означает, что из словаря исключаются все служебные слова, не несущие особой информативности. Это слова, встречающиеся в большом количестве в каждом тексте, например союзы и предлоги (табл. 9.1).

Таблица 9.1

Фрагмент списка стон-слов русского языка

а

в

всё

для

же

ах

весь

всего

до

за

бы

во

вы

если

и

быть

вот

да

есть

из

будь

все

даже

еще

или

Под свертыванием синонимов понимается замена близких по смыслу слов одним общим понятием (концептом). Например, слова «мама», «мать», «матушка», «мамочка», «маман», «мамуля», «матерь», «родительница» могут быть заменены одним словом «мать».

Этот и следующий примеры мы будем выполнять в среде R с использованием пакета Text Mining. В русскоязычном учебнике по R{, который мы очень рекомендуем для чтения, так описываются компоненты успеха этой системы:

  • • высокоуровневый язык программирования R, позволяющий одной строкой реализовать различные операции с объектами, векторами, матрицами, списками и т.д.;
  • • большой набор функций обработки данных, собранных в отдельные пакеты {packages); [3]
  • • развитая система поддержки, включающая обновление компонентов среды, интерактивную помощь и различные образовательные ресурсы, предназначенные как для начального изучения R, так и последующих консультаций по возникающим затруднениям.

Мы подтверждаем своим опытом работы в этой замечательной системе, что все сказанное — правда. Действительно, R позволяет осуществить легкий, быстрый и (самое главное) эффективный старт исследовательской и экспериментальной работы, связанной с обработкой и анализом данных.

Для того чтобы вы познакомились с возможностями R, мы просим дублировать наши действия с помощью этого языка программирования. Скачайте свободно распространяемый дистрибутив R вместе с базовым набором пакетов с сайта cran.r-project.org. Установите и запустите R. Установите пакеты tm и wordcloud с помощью команды install .packages (с ("tm","wordcloud")) и подключите их с помощью команд library (tm) и library (wordcloud) . В какой-нибудь отдельной пустой папке на диске создайте шесть текстовых файлов (табл. 9.2). Установите путь к этой папке с помощью команды setwd, например setwd («Е: /2016/files") . Обратите внимание, что разделитель директорий в R — это не обратный слэш, как принято, а прямой. Теперь все готово для загрузки в R коллекции текстов, которая в пакете tm называется корпусом, и ее последующей обработки.

Таблица 9.2

Текстовые документы, образующие экспериментальную

коллекцию

Название

файла

Содержимое

1

Beijing.txt

Beijing is the last of the 4 great ancient capitals of China. The main parts of the Great Wall of China are mostly located around this city

2

Chinatown.txt

Yokohama’s China Town is the largest China town in Japan. There is unusual atmosphere created by beautiful and narrow streets with plenty of China shops, restaurants and souvenir places

3

Islands.txt

Japan lodged a strong protest with China’s embassy in Tokyo and reiterated its position about contested islands

4

Macau.txt

Macau is one of the two Special Administrative Regions of the People’s Republic of China

5

Shanghai.txt

Despite the fact that Shanghai is not the capital of China, it is a major China metropolis

е

Yokohama.txt

With a population of 3.7 million, Yokohama, south of Tokyo, is Japan’s second largest city

Создайте новый скрипт, введите и выполните команды, приведенные ниже. Чтобы выполнить несколько команд сразу, нужно их выделить и нажать CTRL+R. Приведенные команды формируют корпус из текстовых документов и выводят о нем информацию. Последние две показывают содержимое первого и последнего документа в корпусе.

corpus <- Corpus (DirSource ()) corpus

summary (corpus) corpus [[1]] $content corpus [[6]] $content

Удалите из текстов все притяжательные окончания’s. Очистите тексты от знаков пунктуации, лишних пробелов, чисел, преобразуйте все слова в нижний формат. Снова посмотрите содержимое документов, обратите внимание, как оно изменилось.

removeEndings <- function(x) gsub (" [''] s", x)

corpus <- tm_map (corpus, content_transformer

(removeEndings))

corpus <- tm_map (corpus, removePunctuation)

corpus <- tm_map (corpus, stripWhitespace)

corpus <- tm_map (corpus, removeNumbers)

corpus <- tm_map (corpus, content_transformer

(tolower))

corpus [[1]] $content corpus [[6]] $content

Сформируйте две матрицы: «документы-на-гермины» и «тер- мины-на-документы», которые показывают распределение терминов но документам. В первой матрице строками являются документы, столбцами — термины, во второй матрице — наоборот. Выведите размеры этих матриц. Убедитесь, что эти размеры 6 х 65 и 65 х 6. Выведите полный список терминов, содержащихся в корпусе (табл. 9.3).

dtm <- DocumentTermMatrix (corpus)

tdm <- TermDocumentMatrix (corpus)

nrow (dtm)

ncol (dtm)

nrow (tdm)

ncol (tdm)

dtm$dimnames$Terms

Таблица 9.3

Полный список терминов корпуса

about

administrative

ancient

and

are

around

atmosphere

beautiful

beijing

capital

capitals

china

city

contested

created

despite

embassy

fact

great

islands

its

japan

largest

last

located

lodged

macau

main

major

metropolis

million

mostly

narrow

not

one

parts

people

places

plenty

population

position

protest

regions

reiterated

republic

restaurants

second

shanghai

shops

south

souvenir

special

streets

strong

that

the

there

this

tokyo

town

two

unusual

wall

with

yokohama

Выведите фрагмент матрицы «термины-на-документы» (табл. 9.4). Найдите десять самых высокочастотных терминов корпуса (табл. 9.5).

as.matrix (tdm [1:12,1:6])

freq <- sort (rowSums (as.matrix (tdm)), decreasing= TRUE)

head (freq, 10)

Таблица 9.3

Фрагмент распределительной матрицы «термины-на-документы»

Terms/

Docs

Beijing.

txt

Chinatown.

txt

Islands.

txt

Macau.

txt

Shanghai.

txt

Yokohama.

txt

about

0

0

1

0

0

0

administrative

0

0

0

1

0

0

ancient

1

0

0

0

0

0

and

0

2

1

0

0

0

are

1

0

0

0

0

0

around

1

0

0

0

0

0

atmosphere

0

1

0

0

0

0

Terms/

Docs

Beijing.

txt

Chinatown.

txt

Islands.

txt

Macau.

txt

Shanghai.

txt

Yokohama.

txt

beautiful

0

1

0

0

0

0

beijing

1

0

0

0

0

0

capital

0

0

0

0

1

0

capitals

1

0

0

0

0

0

china

2

3

0

1

2

0

Таблица 95

Десять самых высокочастотных терминов корпуса

china

the

and

japan

with

city

great

largest

tokyo

town

9

9

3

3

3

2

2

2

2

2

Очистите корпус от стоп-слов английского языка. Сначала выведите список стоп-слов. После удаления стоп-слов заново постройте матрицы «документы-на-термины» и «термины-на- документы». После этого убедитесь, что теперь таблица высокочастотных терминов выглядит иначе (табл. 9.6). Постройте облако терминов (рис. 9.1).

stopwords ("english")

corpus<-tm_map (corpus, removeWords, stopwords ("english"))

dtm <- DocumentTermMatrix (corpus) tdm <- TermDocumentMatrix (corpus)

freq <- sort (rowSums (as.matrix (tdm)), decreasing= TRUE)

head (freq, 10)

wordcloud (names (freq), freq, min.freq=l, colors = brewer.pal (8,"Dark2"))

Облако терминов корпуса

Рис. 9.1. Облако терминов корпуса

Таблица 9.6

Десять самых высокочастотных терминов корпуса после удаления стоп-слов

china

japan

city

great

largest

tokyo

town

yokohama

administrative

ancient

9

3

2

2

2

2

2

2

2

1

Сохраните скрипт, он вам еще понадобится.

  • [1] См.: Новые информационные технологии : учеб, пособие / под ред. В. П. Дьяконова. М.: Солон-Пресс, 2005.
  • [2] См.: Самарский А. А., Михайлов А. П. Математическое моделирование. Идеи.Методы. Примеры. 2-е изд., испр. М.: Физматлит, 2001.
  • [3] Мастицкий С. Э., Шитиков В. К. Статистический анализ и визуализацияданных с помощью R // R: Анализ и визуализация данных. 2014. URL: http://r-analytics.blogspot.ru/p/blog-pagc_20.html
 
Посмотреть оригинал
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы