Category: россия

Category was added automatically. Read all entries about "россия".

Большие братья смотрят за тобой! Но некоторые косят. (оффтопик)

На фоне "Strava’s data lets anyone see the names (and heart rates) of people exercising on military bases" конечно мелочь, но:
Сделал заказ на Яндекс.Такси из дома с планшета - мое местоположение автоматически определилось с точностью до дома, жаль подъезд не подцепился в заказ.
Вхожу в личный кабинет Ростелекома для оплаты инета - стабильно определяет, что я в Вологде, то есть ошибка в 100 км. Хотя кому как не им знать рутинг до квартиры.

Сбор коллокаций предлог+(прилагательное+существительное) из tree bank

Продолжение темы http://kelijah.livejournal.com/166962.html.
Из части tree bank собраны предложные паттерны ПРЕДЛОГ+(ПРИЛ+СУЩ).
TOP 200 с сортировкой по mutual information:

Collapse )

Интересно, что значительная часть из них имеет оттенок идеоматичности ("на моих глазах") и соответствуют обстоятельству "как", хотя много и просто частотных "аналитических локативов" (в нижегородской области) и "директивов" (в свою комнату).

Статистически устойчивые пары прилагательное+существительное

Исходный материал - tree bank размером 143,139,298 слов, полученный синтаксическим разбором примерно 1.4 Гб русского текста в utf-8.

Из синтаксических деревьев брались именные группы прилагательное+существительное. Если прилагательное отсутствовало, то в статистике такая пара отражалась с подстановочным маркером прилагательного ((null)). Слова приводились к леммам.

Далее результат был загружен в MS SQL в табличку с тремя столбцами adj, n и freq. С помощью запроса

select A_N.adj + REPLICATE(' ', 20-LEN(A_N.adj) ), A_N.n + REPLICATE(' ', 20-LEN(A_N.N)), A_N.freq
 from adj_n A_N, adj_n NULL_N
 where NULL_N.n=A_N.n
       and A_N.adj!='((null))'
       and NULL_N.adj='((null))'
       and A_N.freq>NULL_N.freq
 order by A_N.freq desc
    
выведены такие пары adj+n, для которых частотность ((null))+n ниже, чем частотность adj+n. Другими словами, в выборку попали такие существительные, которые употребляются без определения реже, чем с ним. Первые 100 записей выглядят так:

Collapse )

Коллокации предлог+прилагательное+существительное

Продолжаею тему, начатую здесь.
Собраны предложные группы, состоящие из трех слов. Прилагательное является атрибутом существительного, то есть согласовано с ним по падежу, числу, роду, одушевленности.

TOP-100 по абсолютной частоте:
Collapse )

TOP-100 по mutual information:
Collapse )

Статистика по коллокациям предлог+сущ

Из результатов синтаксического парсинга собраны предложные дополнения, содержащие только предлог и существительное.
ТОП-100 по частоте:
Collapse )

Можно заметить, что предлоги "лемматизированы", то есть для коллокации "во сне" в статистике появилось "в|сне". Формы существительного оставлены как есть, поэтому "за окно" и "за окном" являются отдельными коллокациями.

Эта же статистика, но ранжировка по mutual information:
Collapse )

Сравнение ранжировки словосочетаний adj+noun по mutual information и по частоте

Парсер обработал почти 1 Гб русского текста (в utf-8).
Результат парсинга - примерно 40 Гб в XML с частеречной разметкой и синтаксическими деревьями.
Специальная утилита разбирает эти деревья, выделяет из них словосочетания заданного типа. В данном случае мы собираем согласование прилагательное+существительное.
После сортировки по убыванию частоты словосочетаний получаем такую картину:
Collapse )

А если подсчитать mutual information и отсортировать по ее убыванию, то получается:
Collapse )
В глаза сразу бросается, что из топа пропали прилагательные "свой", "мой" и так далее.

Текучка по word2vec

Что самое главное в "обучении без учителя"? А то, что запустил с утра прокачку модели, и можно спокойно отправляться гонять на тракторе по лужам, или строить гараж из песка и досочек, или сходить покормить голубей и воробушков. В общем, отличный выбор, если вам 2-3 года и на улице хорошая погодка.

Итак, я собрал отладочный стенд для проверки word2vec в таком составе.
1. Сегментатор текста получается на вход текстовый корпус и сохраняет отдельные предложения в текстовом файле в формате "1 строка=одно предложение".
2. POS Tagger, обученный на эталонном размеченном корпусе, снимает неоднозначность и заменяет слова на леммы. Также он выкидывает из текста знаки препинания и приводит слова к нижнему регистру.
3. Результат скармливаем утилите word2vec, которая подбирает для слов векторно-непрерывное представление.
4. Проверяем разные пары слов на близость. Конкретно, ищем косинус угла между векторами, так что косинус=1 означает полное совпадение векторов (угол=0), а косинус=0 означает ортогональность.

Дальше для проверки надо попробовать создать вероятностную модель POS Tagger'а или shift-reduce парсера с использованием векторов в качестве признаков слов, но это на следующем этапе, если на текущем все заработает как хочется.

Итак, текущие результаты - близость некоторых пар, от самых близких до самых непохожих. На входе п.3 имеем файл размером примерно 174 Мб в utf-8.

Collapse )

Изменения в программе статистической обработки текста Empirika

Внес серьезные изменения в нее впервые более чем за год.

Изменение связано с алгоритмом разбивки обрабатываемого текста на слова в случаях, когда в лексиконе рабочего языка есть слова с символами-разделителями.

Хороший пример - русское существительное Нижний Новгород. Раньше программа считала его формы, встретившиеся в обрабатываемом текста, двумя отдельными словами Нижний и Новгород. Поэтому статистика о частотных свойствах грамматических форм и словарных статей получалась немного искаженная, так как частота форм слова Нижний Новгород фактически подмешивалась к частотам прилагательного нижний и существительного Новгород. В русском языке очень немного подобных "многословных" слов, поэтому искажение статистики получалось в целом несущественным для моих целей, но для английского языка, к примепру, ситуация гораздо сложнее из-за наличия большого количества фразовых глаголов.

Более того, такой алгоритм приводил к ложным уведомлениям об отсутствующих в лексиконе словах. Например, если в тексте встречалось словосочетание с оглядкой на маму, то после разбивки программа отдельно учитывала появление слова оглядкой. Это слово отдельно не употребляется, только в составе предлогов, например без оглядки на. Поэтому в лексиконе такого существительного нет. Но в списке "несловарных слов", выдаваемых Эмпирикой после обработки текстового массива, оно появится.

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

Предварительные прогоны показывают, что производительность практически не просела, в отличие от режима "аккуратной токенизации", который включается опцией -segmentation. Поэтому новый алгоритм сегментации текста включен по умолчанию и не требует дополнительных переключателей.