|
December 22nd, 2015
11:35 pm - Дистрибутивную семантику в массы Выпустили новую версию нашего семантического калькулятора на нейронных сетях: типа Christmas Edition. По-простому говоря, это веб-интерфейс к нейронным языковым моделям, обученным на больших корпусах русского языка. В итоге получается нечто вроде искусственного квази-интеллекта, у которого можно спрашивать, какие слова друг другу семантически близки. Точнее, несколько интеллектов - обученных на разных массивах текстов. Модели на Национальном корпусе русского языка (НКРЯ) и на рандомном сэмпле веб-страниц отличаются друг от друга, как профессор от гопника.
В общем, с Новым Годом и хорошо поиграться. http://ling.go.mail.ru/dsm/ru/ На мобильниках тоже работает.
Вот для затравки семантическая карта 14 тысяч самых частотных существительных в НКРЯ. Можно кликнуть и посмотреть подробнее.
Current Music: Oxxxymiron
|
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
Что, блять, такое паралик, хлюстянка и зубиловец?! В общем, степень кривизны примерно такая же, что и у машинного перевода.
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
А вот здесь явно вполне определенный контекст у всех слов, правда как гондон с рыбой связан — ума не приложу.
В НКРЯ всего 31 вхождение этого слова, причём бОльшая часть - из "Непостижимой странности" Добролюбова (1860 год). На такой микроскопической статистике любая фигня может выплыть. Скорее всего, просто случайно вектор слова оказался близко к кластеру рыб, а ничего реально близкого вообще не нашлось.
В модели на веб-корпусе результаты гораздо релевантнее.
From: | (Anonymous) |
Date: | December 23rd, 2015 - 11:34 am |
---|
| | | (Link) |
|
Полез в Добролюбова:
«...Один из самых яростных антагонистов лорда Глэдстона, француз Гондон, один из бывших редакторов газеты "L'Univers"30, написал несколько книг в защиту бурбонского правительства в Неаполе и в одной из них в 1855 году, говоря о разных либеральных претензиях, утверждает самым решительным образом невозможность и ненужность конституции для неаполитанского народа.»
Действительно, гондон. Говорящая фамилия, однако.
Вчера поймал я два потрепанных гандона, Они унылые висели на крючке. Опять у бабы у своей просил пардона, Что ничего я не принес в пустом мешке.
Эх, хвост, чешуя, не поймал я ничего.
Не первый я ввел матерное... А вот что вышло для аноним: автор 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
Ну какие анонимусы в НКРЯ, окститесь, откуда там такие слова во вменяемых количествах? Такое нужно спрашивать у модели на веб-корпусе:
Веб-корпус
апачан 0.36210 Anonymous 0.33953 журналюга 0.32563 ЗЫ 0.32212 хакер 0.32156 анонимка 0.32074 чмо 0.31662 anastasi 0.31231 забанить 0.31096 lox 0.30654
Это все сионистский заговор!
На слово я "язык":
диалект 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
А что вообще эта цифра значит?
В топе существительные же. Впрочем, если ограничить прилагательными, то сербохорватский и лужицкий все равно будут ближе русского в НКРЯ :)
"язык русский 0.46063" - это на новостном корпусе, там "русский" действительно ближайшее прилагательное после "иноязычный" и "языковой".
Цифра значит косинусную близость между векторами соответствующих слов. Там подробно написано в About :)
From: | phantom |
Date: | December 25th, 2015 - 02:46 am |
---|
| | | (Link) |
|
А где сорцы?
Скоро будут. Приводим в порядок перед публикацией.
From: | phantom |
Date: | December 26th, 2015 - 02:35 pm |
---|
| | | (Link) |
|
Отлично. А на чём лабали, и кто занимался, собственно, программированием?
На питоне. Там в контактах указано, кто.
From: | phantom |
Date: | December 26th, 2015 - 02:40 pm |
---|
| | | (Link) |
|
Картинка нечитаемая, однако, - там или увеличить разрешение надо, или зум прикрутить как-то.
А ещё лучше, я бы разгрузил карту, исключив имена собственные: кажется, там очень много фамилий.
Носители семантической информации - это корни, не так ли? Может быть, имеет смысл объединить формы по корням, и отображать только их?
> Картинка нечитаемая, однако, - там или увеличить разрешение надо, или зум > прикрутить как-то. Какая картинка? Которая в посте? Ну так щелкни по ней - тебе будет png'шник 4 на 3 тысячи пикселей, и его можно приближать до просветления. Но вообще эта картинка просто для привлечения внимания и демонстрации.
> А ещё лучше, я бы разгрузил карту, исключив имена собственные: кажется, > там очень много фамилий. Потому что они частотные, значит. Зачем же исключать. Ну и желающие могут собственную такую карту сделать, с любым желаемым набором слов :)
> Носители семантической информации - это корни, не так ли? Может быть, > имеет смысл объединить формы по корням, и отображать только их? Не очень понял, что имеется в виду. Все слова в корпусах перед обучением моделей были лемматизированы, разумеется.
From: | phantom |
Date: | December 30th, 2015 - 12:44 am |
---|
| | | (Link) |
|
Png-шник нечитаемый, однако, - накладываются слова одно на другое.
Это неизбежное зло. Можно, конечно ещё уменьшить размер шрифта и увеличить разрешение картинки, но мне лень. Желающие могут самостоятельно скачать любую интересующую их модель и сгенерировать при помощи t-SNE такие же карты.
From: | phantom |
Date: | December 26th, 2015 - 02:44 pm |
---|
| | | (Link) |
|
Наконец, не вижу здесь кластеров - семантических классов, в которые, я думал, язык будет подразделяться. К примеру, имена животных - отдельная категория, и должа была бы отдельно представлена?
В семантической карте НКРЯ вижу совершенно отчётливый кластер с названиями животных в правом нижнем углу.
From: | phantom |
Date: | December 30th, 2015 - 12:46 am |
---|
| | | (Link) |
|
И точно! Да, надо будет поиграться с инструментом, когда исходный код будет.
В общем-то и сейчас легко можно поиграться. Качаешь наши модели, устанавливаешь Gensim и вперёд. Только веб-интерфейса не будет.
From: | phantom |
Date: | December 30th, 2015 - 06:16 pm |
---|
| | | (Link) |
|
Попробую, ага, как минутка выдастся.
Что-то на слове "шмяк" сервис возвращает Internal Server Error :-D
Это был баг, он пофикшен :) Спасибо!
А почему на некоторые русские слова возвращаются английские? Что там вообще английские слова делают?
И еще я видел в ответах слова в родительном падеже, это ок? Например, если поискать по слову "хип-хоп", то получишь "фанка".
В обучающих корпусах встречаются английские слова (и некоторые довольно часто), это нормально. Можно, конечно, специально их вырезать, но не вижу большого смысла.
Слова не в нормальной форме - это артефакты лемматизации (она не стопроцентно точная). То есть, лемматизатор в конкретном предложении не смог догадаться, какая у этого слова должна быть нормальная форма, и оставил как есть. В итоге получилось как бы ещё одно слово. И оно, конечно, в результате обучения оказалось семантически близким к правильной нормальной форме. В принципе, такого должно быть не очень много, но встречается, да. |
|