Pull to refresh
64
0
Денис Кулагин @kdenisk

Компьютерная лингвистика

Send message

Новогодний датасет 2019: открытый тональный словарь русского языка

Reading time6 min
Views4.9K
Обычно в преддверии Нового года мы обновляем наш датасет по Открытой семантике. В этом году было сделано много работы, но она не подошла к логическому завершению и мы продолжим её в следующем году. Сейчас же мы хотим рассказать о не менее важном открытом датасете, вызвавшим живой интерес на ряде лингвистических конференций этого года, как по стороны исследователей, так и со стороны представителей индустрии. Речь в посте пойдёт об открытом тональном словаре русского языка.


Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments2

Новогодний датасет 2018: открытая семантика русского языка

Reading time12 min
Views8.3K
Открытая семантика русского языка, об истории создания которой вы можете прочитать здесь и здесь, получила большое обновление. Мы собрали достаточное количество данных, чтобы применить поверх собранной разметки машинное обучение и построить семантическую модель языка. Что из этого получилось смотрите под катом.


Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments27

Новогодний датасет: открытая семантика русского языка

Reading time7 min
Views8.2K
Новый год — время чудес и подарков. Главным чудом, которое подарила нам природа, безусловно является естественный язык и человеческая речь. А мы, в свою очередь, хотим сделать новогодний подарок всем исследователям этого феномена и поделиться датасетом по открытой семантике русского языка.

В статье мы позволим себе немного подискутировать на тему смыслов, расскажем как мы пришли к необходимости создания открытой семантической разметки, расскажем о настоящих результатах и будущих направлениях этой большой работы. И, конечно, дадим ссылку на датасет, который вы сможете скачать и использовать для своих экспериментов и исследований.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments8

Датасет: ассоциации к словам и выражениям русского языка

Reading time3 min
Views14K
В последнее время для оценки семантического сходства широкое распространение получили методы дистрибутивной семантики. Эти подходы хорошо показали себя в ряде практических задач, но они имеют ряд жёстких ограничений. Так, например, языковые контексты оказываются сильно схожими для эмоционально полярных слов. Следовательно, антонимы с точки зрения word2vec часто оказываются близкими словами. Также word2vec принципиально симметричен, ведь за основу берётся совстречаемость слов в тексте, а популярная мера сходства между векторами — косинусное расстояние — также не зависит от порядка операндов.

Мы хотим поделиться с сообществом собранной нами базой ассоциаций к словам и выражениям русского языка. Этот набор данных лишён недостатков методов дистрибутивной семантики. Ассоциации хорошо сохраняют эмоциональную полярность и они по своей природе асимметричны. Подробнее расскажем в статье.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments14

Научи бота! — разметка эмоций и семантики русского языка

Reading time6 min
Views8.7K
Со всех сторон на нас сыпятся перспективы светлого роботического будущего. Или не очень светлого, в духе Матрицы и Терминатора. В самом деле — машины уже уверено справляются с переводами, не хуже и намного быстрее людей распознают лица и предметы окружающего мира, учатся понимать и синтезировать речь. Круто? Не то слово!

Но дело серьёзно осложняется тем, что компьютеры так и научились ориентироваться в нашем мире. Всё, что они так хорошо делают, они делают по аналогии, не вдаваясь в суть и не нагружая себя смыслом происходящего. Может оно и к лучшему — дольше проживём, не будучи порабощены бездушным племенем машин.

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

Как мы планируем прокачать сознание машин, научить их эмоциям, чувствам и оценочным суждениям, а также где вы можете свободно скачать размеченные
данные — читайте в статье.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments13

Делаем спеллчекер на фонетических алгоритмах своими руками

Reading time8 min
Views9.6K
Запустив в продакшене супер-мега-навороченную систему нечёткого поиска с поддержкой морфологии, которая показывала на тестовый кейсах блестящие результаты, разработчик сталкивается с суровой реальностью. Пользователи, избалованные автокоррекцией Яндекса и Гугла, делают ошибки и опечатки. И вместо аккуратной страницы с результатами поиска получают грустный смайлик — машина не поняла запроса.

Машинный спеллчекинг — это целое искусство и не зря поисковые гиганты нанимают талантливых математиков работать над этой задачей. Но существуют и простые механизмы автокоррекции, основанные на фонетических принципах, которые уже способны давать результат и улучшать пользовательский опыт. О них и поговорим в статье. Тем более, что они так или иначе являются фундаментом для более сложных решений.

В конце статьи приводится ссылка на открытый датасет с ошибками и опечатками. Можно собрать по нему ценную статистику и потестировать свои алгоритмы спеллчекинга.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments10

Геометрия машинного обучения. Разделяющие гиперплоскости или в чём геометрический смысл линейной комбинации?

Reading time13 min
Views45K
Во многих алгоритмах машинного обучения, в том числе в нейронных сетях, нам постоянно приходится иметь дело со взвешенной суммой или, иначе, линейной комбинацией компонент входного вектора. А в чём смысл получаемого скалярного значения?

В статье попробуем ответить на этот вопрос с примерами, формулами, а также множеством иллюстраций и кода на Python, чтобы вы могли легко всё воспроизвести и поставить свои собственные эксперименты.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments9

Нейронные сети в картинках: от одного нейрона до глубоких архитектур

Reading time7 min
Views96K
Многие материалы по нейронным сетям сразу начинаются с демонстрации довольно сложных архитектур. При этом самые базовые вещи, касающиеся функций активаций, инициализации весов, выбора количества слоёв в сети и т.д. если и рассматриваются, то вскользь. Получается начинающему практику нейронных сетей приходится брать типовые конфигурации и работать с ними фактически вслепую.

В статье мы пойдём по другому пути. Начнём с самой простой конфигурации — одного нейрона с одним входом и одним выходом, без активации. Далее будем маленькими итерациями усложнять конфигурацию сети и попробуем выжать из каждой из них разумный максимум. Это позволит подёргать сети за ниточки и наработать практическую интуицию в построении архитектур нейросетей, которая на практике оказывается очень ценным активом.
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments53

Как в Java выстрелить себе в ногу из лямбды и не промахнуться

Reading time9 min
Views33K
Иногда можно услышать такие разговоры: никаких принципиальных изменений в Java 8 не произошло и лямбды это старые добрые анонимные классы щедро посыпанные синтаксическим сахаром. Как бы не так! Предлагаю сегодня поговорить, в чём отличие лямбд от анонимных классов. И почему попасть себе в ногу стало всё-таки сложнее.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments40

Сколько места в куче занимают 100 миллионов строк в Java?

Reading time4 min
Views28K
При работе с естественным языком и лингвистическом анализе текстов нам часто приходится оперировать огромным количеством уникальных коротких строк. Счёт идёт на десятки и сотни миллионов — именно столько в языке существует, к примеру, осмысленных сочетаний из двух слов. Основной платформой для нас является Java и мы не понаслышке знаем о её прожорливости при работе с таким большим количеством мелких объектов.

Чтобы оценить масштаб бедствия, мы решили провести простой эксперимент — создать 100 миллионов пустых строк в Яве и посмотреть, сколько придётся заплатить за них оперативной памяти.
Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments85

Юникод: необходимый практический минимум для каждого разработчика

Reading time8 min
Views114K
Юникод — это очень большой и сложный мир, ведь стандарт позволяет ни много ни мало представлять и работать в компьютере со всеми основными письменностями мира. Некоторые системы письма существуют уже более тысячи лет, причём многие из них развивались почти независимо друг от друга в разных уголках мира. Люди так много всего придумали и оно зачастую настолько непохоже друг на друга, что объединить всё это в единый стандарт было крайне непростой и амбициозной задачей.

Чтобы по-настоящему разобраться с Юникодом нужно хотя бы поверхностно представлять себе особенности всех письменностей, с которыми позволяет работать стандарт. Но так ли это нужно каждому разработчику? Мы скажем, что нет. Для использования Юникода в большинстве повседневных задач, достаточно владеть разумным минимумом сведений, а дальше углубляться в стандарт по мере необходимости.

В статье мы расскажем об основных принципах Юникода и осветим те важные практические вопросы, с которыми разработчики непременно столкнутся в своей повседневной работе.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments52

Как собрать биграммы для корпуса любого размера на домашнем компьютере

Reading time5 min
Views19K
В современной компьютерной лингвистике биграммы, или в общем случае n-граммы, являются важным статистическим инструментом. В статье мы расскажем с какими трудностями можно столкнуться при расчёте биграмм на большом корпусе текстов и приведём алгоритм, который можно использовать на любом домашнем компьютере.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments19

Information

Rating
Does not participate
Location
Железнодорожный (Московск.), Москва и Московская обл., Россия
Registered
Activity