Задать вопрос
@n7olkachev

Строка как вход для нейронной сети?

Есть слова, длиной от 4 до 7 символов, состоящих из строчных букв английского алфавита. Каждому слову в соответствии ставится 1 или 0. Нужно обучить ИНН так, чтобы она сама могла оценивать новые слова.
Попробовал перегонять каждую букву в 26 мерный вектор и прокидывать эти вектора на вход к персептрону. Сеть ничему не обучилась, пишет почти нулевую ошибку, но на деле даже на обучающей выборке дает огромную ошибку.
В какую сторону копать? Может нужна другая архитектура сети? Или же другой метод маппинга слова в инпут?
UPD
Опишу саму задачу, чтобы было понятней. Я хочу научить ИНС определять субъективную оценку "красоты" набора букв. То есть, есть наборы букв, сочетание которых выглядит хорошо, есть наборы букв, сочетание которых выглядит плохо. Например, мне нравится, как выглядит слово "cool", но мне абсолютно не нравится, как выглядит "kkrt". Это субъективно, поэтому вряд ли здесь может помочь что-то кроме ИНС.
  • Вопрос задан
  • 1236 просмотров
Подписаться 2 Оценить 2 комментария
Решения вопроса 2
@ivodopyanov
NLP, python, numpy, tensorflow
Текст обычно кодируют двумя способами:
1) bag-of-words (или chars, или еще чего) - кодируем вектором длины N (размер словаря), для каждого примера i-й элемент вектора равен кол-ву этих слов\символов в тексте. Плюс различные вариации вроде TF-IDF (когда используем не просто количество, а более сложную метрику), n-grams (когда используем не отдельные слова, а последовательности из 2, 3 и более), skipgrams (когда используем не отдельные слова, а сочетания слов, отстоящие друг от друга на каком-то расстоянии - чтобы выкидывать предлоги, артикли и прочее) и так далее. Закодированный таким образом текст можно прогнать через наивный байесовский классификатор, SVM (обычно показывает лучший результат на порядках 10000-100000 примеров), MLP
2) кодируем вектором длины N (максимально допустимая длина текста), где каждый элемент - это индекс слова\символа. Если текст короче N, то дополняем нулями. С таким вариантом кодирования работают сверточные, рекурентные и рекурсивные сети.
Ответ написан
@n7olkachev Автор вопроса
Ошибка была в недостаточности входных данных. Описанный метод работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
26 мерный вектор

ОМГ!

Ну собственно - что значит "оценивать"? Дайте определение что у вас на входе в ИНС и на выходе - в человеческих терминах.
Ответ написан
2ord
@2ord
Нужно обучить ИНН так, чтобы она сама могла оценивать новые слова.

"оценивать" - это как?

"Копать" нужно в сторону дополнительного чтения возможностей НС и также о способах кодирования входных данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы