Pull to refresh

Чудесный мир Word Embeddings: какие они бывают и зачем нужны?

Reading time 19 min
Views 113K
Open Data Science corporate blog Search engines *Python *Data Mining *Machine learning *

Начать стоит от печки, то есть с постановки задачи. Откуда берется сама задача word embedding?
Лирическое отступление: К сожалению, русскоязычное сообщество еще не выработало единого термина для этого понятия, поэтому мы будем использовать англоязычный.
Сам по себе embedding — это сопоставление произвольной сущности (например, узла в графе или кусочка картинки) некоторому вектору.


image

Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 23

Нейросети и философия языка

Reading time 9 min
Views 11K
Python *Algorithms *Machine learning *Popular science Artificial Intelligence
Translation
Почему теории Витгенштейна остаются основой всего современного NLP

Векторное представление слов — пожалуй, одна из самых красивых и романтичных идей в истории искусственного интеллекта. Философия языка — это раздел философии, исследующий связь между языком и реальностью и как сделать сделать речь осмысленной и понятной. А векторное представление слов — очень специфический метод в современной обработке естественного языка (Natural Language Processing, NLP). В некотором смысле он представляет собой эмпирическое доказательство теорий Людвига Витгенштейна, одного из самых актуальных философов прошлого века. Для Витгенштейна использование слов — это ход в социальной языковой игре, в которую играют члены сообщества, понимающие друг друга. Значение слова зависит только от его полезности в контексте, оно не соотносится один к одному с объектом из реального мира.

Для большого класса случаев, в которых мы используем слово «значение», его можно определить как значение слова есть его использование в языке.
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 7

Как без особенных усилий создать ИИ-расиста

Reading time 15 min
Views 8.4K
Python *Machine learning *Artificial Intelligence
Tutorial
Translation
Предостерегающий урок.

Сделаем классификатор тональности!

Анализ тональности (сентимент-анализ) — очень распространённая задача в обработке естественного языка (NLP), и это неудивительно. Для бизнеса важно понимать, какие мнения высказывают люди: положительные или отрицательные. Такой анализ используется для мониторинга социальных сетей, обратной связи с клиентами и даже в алгоритмической биржевой торговле (в результате боты покупают акции Berkshire Hathaway после публикации положительных отзывов о роли Энн Хэтэуэй в последнем фильме).

Метод анализа иногда слишком упрощён, но это один из самых простых способов получить измеримые результаты. Просто подаёте текст — и на выходе положительные и отрицательные оценки. Не нужно разбираться с деревом синтаксического анализа, строить граф или какое-то другое сложное представление.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 2

Contextual Emotion Detection in Textual Conversations Using Neural Networks

Reading time 10 min
Views 3.1K
VK corporate blog Python *Data Mining *Big Data *Machine learning *

Nowadays, talking to conversational agents is becoming a daily routine, and it is crucial for dialogue systems to generate responses as human-like as possible. As one of the main aspects, primary attention should be given to providing emotionally aware responses to users. In this article, we are going to describe the recurrent neural network architecture for emotion detection in textual conversations, that participated in SemEval-2019 Task 3 “EmoContext”, that is, an annual workshop on semantic evaluation. The task objective is to classify emotion (i.e. happy, sad, angry, and others) in a 3-turn conversational data set.
Read more →
Total votes 37: ↑37 and ↓0 +37
Comments 0

Всё, что вы знали о word2vec, неправда

Reading time 4 min
Views 12K
Algorithms *Machine learning *
Translation
Классическое объяснение word2vec как архитектуры Skip-gram с отрицательной выборкой в оригинальной научной статье и бесчисленных блог-постах выглядит так:

while(1) {
   1. vf = vector of focus word
   2. vc = vector of focus word
   3. train such that (vc . vf = 1)
   4. for(0 <= i <= negative samples):
           vneg = vector of word *not* in context
           train such that (vf . vneg = 0)
}

Действительно, если погуглить [word2vec skipgram], что мы видим:


Но все эти реализации ошибочны.
Читать дальше →
Total votes 57: ↑54 and ↓3 +51
Comments 6

Автоматическое определение эмоций в текстовых беседах с использованием нейронных сетей

Reading time 10 min
Views 12K
VK corporate blog Python *Data Mining *Big Data *Machine learning *

Одна из основных задач диалоговых систем состоит не только в предоставлении нужной пользователю информации, но и в генерации как можно более человеческих ответов. А распознание эмоций собеседника — уже не просто крутая фича, это жизненная необходимость. В этой статье мы рассмотрим архитектуру рекуррентной нейросети для определения эмоций в текстовых беседах, которая принимала участие в SemEval-2019 Task 3 “EmoContext”, ежегодном соревновании по компьютерной лингвистике. Задача состояла в классификации эмоций (“happy”, “sad”, “angry” и “others”) в беседе из трех реплик, в которой участвовали чат-бот и человек.

В первой части статьи мы рассмотрим поставленную в EmoContext задачу и предоставленные организаторами данные. Во второй и третьей частях разберём предварительную обработку текста и способы векторного представления слов. В четвёртой части мы опишем архитектуру LSTM, которую мы использовали в соревновании. Код написан на языке Python с использованием библиотеки Keras.
Читать дальше →
Total votes 50: ↑48 and ↓2 +46
Comments 8

Классификация документов: 7 практических подходов для небольших наборов данных

Reading time 11 min
Views 12K
Machine learning *
Translation

Классификация документов или текста — это одна из важнейших задач в обработке естественного языка (natural language processing, NLP).


У нее есть множество применений, таких как классификация новостей, фильтрация спама, поиск неприемлемых комментариев и т. д.


У больших компаний нет проблем со сбором больших наборов данных, поэтому обучение модели классификации текста с нуля — вполне осуществимая задача.


Однако, для большинства реальных задач большие наборы данных — редкость, и для построения своей модели приходится проявлять смекалку.


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

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