?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
bigram matrix
nyaload
_winnie
Берем все соседние пары букв в нескольких книжках (рус/англ), строим матрицу M{ij} = вероятность встретить символ j после i. Группируем столбцы/строки по похожести.

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

html-таблица (3 мб): http://dobrokot.ru/dump/bigram_matrix.html
скриншот фрагмента для русского языка:
Tags: , ,

  • 1
Практической пользы визуализации не понял (ибо дата майнингом сам занимаюсь нечасто), но как идея неплохо. Особенно забавна визуализация раскрашенной HTML таблицей. Интересно, HTML код занимает больше, чем PNG картинка в итоге, или меньше?

Практическая польза вряд ли есть, если только нет цели узнать самому про закономерности символов. Увидев их глазами. Возможно, поможет понять какие-то самые-самые базовые вещи про новый незнакомый язык (что там используется как знаки препинания, группировки символов по типу).

HTML код занимает примерно столько же в архиве, и в 50 раз больше в разжатом виде.

Edited at 2012-01-08 07:58 pm (UTC)

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

Единственное скользкое место - если язык совсем незнакомый, то почему именно биграммы? Например, не уверен, что это релевантно для китайского.

>почему именно биграммы

Ради забавы. Просто потому что они дают возможность нарисовать простую картинку без выкидывания какой-либо информации, вот и всё.

Ну вот попробовал на
http://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B?printable=yes

Заметил групку 四 五 三 二 九 十 с последующим 年
Оказалось, что это числительные, а 年 - это значит "год".


Да, с Ъ наглядно получилось :)

Еще наглядно с 9 после 1. Книги, видно, про 20 век.

В выборке что-то по пограммирование: есть cтроковые присваиания ="

Одна книжка была в html, это оттуда. Разметки там было чуть-чуть меньше процента, так что на закономерности естественного языка она не повлияла, но добавила свои там где они не пересекаются с естественным языком.

Таблица как-то странно нормализована. Яркие пятна в строчке с твёрдым знаком?


Нормально нормализована! После твердого знака могут быть только е и я! (и ещё ё, но у меня книжки были без буквы ё).

Каждая строка нормализована отдельно по своему максимуму, или по вся матрица по общему максимуму? На первый взгляд, твердый знак - довольно редкая буква, его строка должна быть почти черной.

матрица M{ij} = вероятность встретить символ j после i.

т.е. это условные вероятности. Если 'ъ' уже встретился, то после него 'е' или 'я' c вероятностями примерно 1/2 1/2.

Это действительно означает, что каждая строка нормализована (по сумме вероятностей).



Edited at 2012-01-08 09:40 pm (UTC)

А, понятно, спасибо!

А почему такой порядок?

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

Основа для определения языка текста.

Винни открыл для себя частотный анализ биграмм. Ждём новых чудесных и удивительных открытий в области криптографии!

Не, я не открывал. Я картинку нарисовал :3
Тут самое интересное - группировка. Что глухие и звонкие, гласные и согласные, йотированные (яюе) и нейотированные сами собой оказались рядом, без заглядывания в готовые таблицы.


Edited at 2012-01-09 09:11 am (UTC)

И естественно, группировка - она не для биграм, которые легко умещаются в память. И статистика которых легко насыщается 10-мегабайтным файлом. А для например 20-грам, которые ни в память не лезут, ни фитятся никакими данными.

У *и никогда *ыло *ого *ая.

Тренировка на кошках ;)

Я как-то писал нечто отдаленно похожее на Ц только визуализировал бестолково
http://cs11480.vkontakte.ru/u10214343/126652182/z_7b7744d6.jpg

А у Вас случайно не сохранились «сырые» данные? Вот хороший человек интересуется: http://dmagin.livejournal.com/17028.html?view=19844#t19844 (кстати, специалист по теории графов — рекомендую!)

Угу, ответил. Главное текст большой найти, а из него какие угодно грамы можно посчитать.

  • 1