↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!

Комментарий к сообщению


9 августа 2014
Есть стандартный подход к работе с текстами - bag of words. У нас есть, скажем, три тысячи новостных статей. Мы смотрим, сколько разных слов в них встречается. Не помню, какая цифра будет реалистичной, поэтому пусть N. Дальше берем первую статью и смотрим на первое слово в списке - пусть это "абрикос". В нашей статье слово "абрикос" не встретилось ни разу, ставим ноль. Дальше слово "арбуз", оно встретилось два раза, ставим два. Так пробегаем по всем словам и получаем вектор (0, 2, ...), с которым мы связываем всю статью. Большинства известных слов в статье нет - по большей части в векторе нули. То есть мы ворочаем огромными размерностями абсолютно понапрасну. Вдобавок, когда слов и статей много, получаем "проклятие размерности" - разница между двумя в корне разными статьями становится не такая уж и большая, как векторы они обе слишком близки к нулю. И что ты на такой модели ни строй, всё будет плохо работать ))
Одна из очень удачных идей современного NLP - работать с векторами, которые будут состоять не из целых, а дробных чисел. Эти векторы строить по встретившимся контекстам конкретного слова. Как строить - есть разные способы. Правда, каждая отдельная координата уже не будет представлять собой какой-то признак, о котором мы будем в курсе; но зато-о-о оказывается, что мы очень сильно выигрываем в размерности, слова более-менее группируются по частям речи, и даже можно так всё сделать, что вектор для "столы" минус вектор для "стол" будет примерно тем же, что и "стулья" минус "стул"; можно отловить даже по смыслу - частное минус общее сохраняется, а "принцесса" плюс "король" даёт "королеву" ))
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть