Записки на обоях - Дистрибутивную семантику в массы

> Recent Entries
> Archive
> Friends
> User Info
> My Website

December 22nd, 2015


Previous Entry Add to Memories Tell A Friend Next Entry
11:35 pm - Дистрибутивную семантику в массы
Выпустили новую версию нашего семантического калькулятора на нейронных сетях: типа Christmas Edition. По-простому говоря, это веб-интерфейс к нейронным языковым моделям, обученным на больших корпусах русского языка. В итоге получается нечто вроде искусственного квази-интеллекта, у которого можно спрашивать, какие слова друг другу семантически близки. Точнее, несколько интеллектов - обученных на разных массивах текстов. Модели на Национальном корпусе русского языка (НКРЯ) и на рандомном сэмпле веб-страниц отличаются друг от друга, как профессор от гопника.

В общем, с Новым Годом и хорошо поиграться. http://ling.go.mail.ru/dsm/ru/
На мобильниках тоже работает.

Вот для затравки семантическая карта 14 тысяч самых частотных существительных в НКРЯ. Можно кликнуть и посмотреть подробнее.
Визуализация отношений между cуществительными; по клику доступна полноразмерная версия
Current Music: Oxxxymiron

(28 comments | Leave a comment)

Comments:


From:(Anonymous)
Date:December 23rd, 2015 - 02:46 am
(Link)
Какие слова близки к слову "ебальник" в ruscorpora?

паралик 0.42809
родимец 0.40807
блядь 0.39437
пизда 0.39344
счас 0.39076
подлюга 0.38422
хуй 0.38351
хуесос 0.38148
зубиловец 0.37517
хлюстанка 0.37241

Что, блять, такое паралик, хлюстянка и зубиловец?! В общем, степень кривизны примерно такая же, что и у машинного перевода.
[User Picture]
From:[info]tyumen_kender
Date:December 23rd, 2015 - 03:01 am
(Link)
Слово не частотное, тем более, в НКРЯ.
Откуда бы для него хорошая статистика взялась.

"Паралик" - это вот http://dic.academic.ru/dic.nsf/proverbs/6436/%D0%9F%D0%90%D0%A0%D0%90%D0%9B%D0%98%D0%9A
From:(Anonymous)
Date:December 23rd, 2015 - 03:16 am
(Link)
Семантические аналоги для говноед (вычисленные на модели ruscorpora)

пралик 0.38031
дюморье 0.37936
ехидна 0.37867
маллори 0.36776
цурюк 0.36723
робыт 0.36630
гордячка 0.36529
хризеида 0.36325
вульпиус 0.36073
фейт 0.35995
From:(Anonymous)
Date:December 23rd, 2015 - 03:25 am
(Link)
Семантические аналоги для гондон (вычисленные на модели ruscorpora)

чебак 0.36188
оморочка 0.35905
камбала 0.34852
бредень 0.34594
бычок 0.32672
сафи 0.32257
плотва 0.32193
рыба 0.32147
корюшка 0.31803
окунь 0.31754

А вот здесь явно вполне определенный контекст у всех слов, правда как гондон с рыбой связан — ума не приложу.
[User Picture]
From:[info]tyumen_kender
Date:December 23rd, 2015 - 04:15 am
(Link)
В НКРЯ всего 31 вхождение этого слова, причём бОльшая часть - из "Непостижимой странности" Добролюбова (1860 год). На такой микроскопической статистике любая фигня может выплыть. Скорее всего, просто случайно вектор слова оказался близко к кластеру рыб, а ничего реально близкого вообще не нашлось.

В модели на веб-корпусе результаты гораздо релевантнее.
From:(Anonymous)
Date:December 23rd, 2015 - 11:34 am
(Link)
Полез в Добролюбова:

«...Один из самых яростных антагонистов лорда Глэдстона, француз Гондон, один из бывших редакторов газеты "L'Univers"30, написал несколько книг в защиту бурбонского правительства в Неаполе и в одной из них в 1855 году, говоря о разных либеральных претензиях, утверждает самым решительным образом невозможность и ненужность конституции для неаполитанского народа.»

Действительно, гондон. Говорящая фамилия, однако.
[User Picture]
From:[info]kotovski
Date:December 23rd, 2015 - 04:54 am
(Link)
Вчера поймал я два потрепанных гандона,
Они унылые висели на крючке.
Опять у бабы у своей просил пардона,
Что ничего я не принес в пустом мешке.

Эх, хвост, чешуя,
не поймал я ничего.
[User Picture]
From:[info]hex_laden
Date:December 23rd, 2015 - 06:46 am
(Link)
Не первый я ввел матерное...
А вот что вышло для аноним:
автор 0.34477
доброжелатель 0.33639
схолия 0.32388
опус 0.32034
айдентификейшен 0.31403
соискательница 0.31233
синопсис 0.31088
семэн 0.31078
кинокомпозитор 0.30620
ассиар 0.30177
Oo

для "анонимус" вообще странно вышло
инез 0.31120
лулочка 0.30938
эмили 0.30077
авон 0.29752
эдит 0.29213
гуттиэр 0.28964
муходав 0.28680
бандерас 0.28267
живанш 0.28129
рябовский 0.28001
[User Picture]
From:[info]tyumen_kender
Date:December 23rd, 2015 - 01:19 pm
(Link)
Ну какие анонимусы в НКРЯ, окститесь, откуда там такие слова во вменяемых количествах?
Такое нужно спрашивать у модели на веб-корпусе:

Веб-корпус

апачан 0.36210
Anonymous 0.33953
журналюга 0.32563
ЗЫ 0.32212
хакер 0.32156
анонимка 0.32074
чмо 0.31662
anastasi 0.31231
забанить 0.31096
lox 0.30654
From:[info]alex-spd.livejournal.com
Date:December 23rd, 2015 - 09:51 am
(Link)
Это все сионистский заговор!

На слово я "язык":

диалект 0.57763
наречие 0.55314
грамматика 0.53869
иврит 0.53845
фонетика 0.51860
латынь 0.51355
синтаксис 0.50485
идиш 0.50200
фольклор 0.49851
произношение 0.49572

А где же "русский"? ;)
Не вошел в топ.
язык русский 0.46063

Зато литературный язык немного обгоняет матерный. :)
язык литературный 0.28972
язык матерный 0.25394

А что вообще эта цифра значит?
[User Picture]
From:[info]tyumen_kender
Date:December 23rd, 2015 - 01:25 pm
(Link)
В топе существительные же. Впрочем, если ограничить прилагательными, то сербохорватский и лужицкий все равно будут ближе русского в НКРЯ :)

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

Цифра значит косинусную близость между векторами соответствующих слов. Там подробно написано в About :)
From:[info]phantom
Date:December 25th, 2015 - 02:46 am
(Link)
А где сорцы?
[User Picture]
From:[info]tyumen_kender
Date:December 25th, 2015 - 01:42 pm
(Link)
Скоро будут. Приводим в порядок перед публикацией.
From:[info]phantom
Date:December 26th, 2015 - 02:35 pm
(Link)
Отлично. А на чём лабали, и кто занимался, собственно, программированием?
[User Picture]
From:[info]tyumen_kender
Date:December 26th, 2015 - 11:01 pm
(Link)
На питоне.
Там в контактах указано, кто.
From:[info]phantom
Date:December 26th, 2015 - 02:40 pm
(Link)
Картинка нечитаемая, однако, - там или увеличить разрешение надо, или зум прикрутить как-то.

А ещё лучше, я бы разгрузил карту, исключив имена собственные: кажется, там очень много фамилий.

Носители семантической информации - это корни, не так ли? Может быть, имеет смысл объединить формы по корням, и отображать только их?
[User Picture]
From:[info]tyumen_kender
Date:December 26th, 2015 - 11:05 pm
(Link)
> Картинка нечитаемая, однако, - там или увеличить разрешение надо, или зум > прикрутить как-то.
Какая картинка? Которая в посте? Ну так щелкни по ней - тебе будет png'шник 4 на 3 тысячи пикселей, и его можно приближать до просветления. Но вообще эта картинка просто для привлечения внимания и демонстрации.

> А ещё лучше, я бы разгрузил карту, исключив имена собственные: кажется,
> там очень много фамилий.
Потому что они частотные, значит. Зачем же исключать. Ну и желающие могут собственную такую карту сделать, с любым желаемым набором слов :)

> Носители семантической информации - это корни, не так ли? Может быть,
> имеет смысл объединить формы по корням, и отображать только их?
Не очень понял, что имеется в виду. Все слова в корпусах перед обучением моделей были лемматизированы, разумеется.
From:[info]phantom
Date:December 30th, 2015 - 12:44 am
(Link)
Png-шник нечитаемый, однако, - накладываются слова одно на другое.
[User Picture]
From:[info]tyumen_kender
Date:December 30th, 2015 - 01:47 am
(Link)
Это неизбежное зло. Можно, конечно ещё уменьшить размер шрифта и увеличить разрешение картинки, но мне лень.
Желающие могут самостоятельно скачать любую интересующую их модель и сгенерировать при помощи t-SNE такие же карты.
From:[info]phantom
Date:December 26th, 2015 - 02:44 pm
(Link)
Наконец, не вижу здесь кластеров - семантических классов, в которые, я думал, язык будет подразделяться. К примеру, имена животных - отдельная категория, и должа была бы отдельно представлена?
[User Picture]
From:[info]tyumen_kender
Date:December 26th, 2015 - 11:05 pm
(Link)
В семантической карте НКРЯ вижу совершенно отчётливый кластер с названиями животных в правом нижнем углу.
From:[info]phantom
Date:December 30th, 2015 - 12:46 am
(Link)
И точно! Да, надо будет поиграться с инструментом, когда исходный код будет.
[User Picture]
From:[info]tyumen_kender
Date:December 30th, 2015 - 12:56 pm
(Link)
В общем-то и сейчас легко можно поиграться. Качаешь наши модели, устанавливаешь Gensim и вперёд. Только веб-интерфейса не будет.
From:[info]phantom
Date:December 30th, 2015 - 06:16 pm
(Link)
Попробую, ага, как минутка выдастся.
From:[info]uvizhe.livejournal.com
Date:January 12th, 2016 - 05:16 pm
(Link)
Что-то на слове "шмяк" сервис возвращает Internal Server Error :-D
[User Picture]
From:[info]tyumen_kender
Date:January 12th, 2016 - 06:22 pm
(Link)
Это был баг, он пофикшен :)
Спасибо!
From:[info]uvizhe.livejournal.com
Date:January 12th, 2016 - 06:27 pm
(Link)
А почему на некоторые русские слова возвращаются английские? Что там вообще английские слова делают?

И еще я видел в ответах слова в родительном падеже, это ок? Например, если поискать по слову "хип-хоп", то получишь "фанка".
[User Picture]
From:[info]tyumen_kender
Date:January 12th, 2016 - 06:32 pm
(Link)
В обучающих корпусах встречаются английские слова (и некоторые довольно часто), это нормально. Можно, конечно, специально их вырезать, но не вижу большого смысла.

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

> Go to Top
LJ.Rossia.org