Алгоритмы: бинаризация данных - PullRequest
3 голосов
/ 19 февраля 2010

У меня есть огромный набор данных со словами word_i и весами weight[i,j], где вес - это «сила соединения» между словами.

Я хотел бы преобразовать эти данные в двоичную форму, но я хочу знатьесли существует какой-либо существующий алгоритм для создания двоичного кода каждого слова таким образом, чтобы расстояние Хемминга между кодами слов коррелировало с этим весом.

Добавлено:
Проблема, над которой я работаю, заключается в том, что я хочу научить нейронную сеть или SVM связывать слова.И именно поэтому я решил преобразовать данные в двоичную форму.Не спрашивайте, почему я не хочу использовать марковские модели или просто графики, я попробовал их и хочу сравнить их с нейронными сетями.

Итак,

  1. Я хочу, чтобы мой NN для данного слова «a» возвращал его ближайшую ассоциацию или любые заданные слова и их вероятности,

  2. Я пытался просто преобразовать в двоичную форму и сделать «ab» в качестве вводаи вес в качестве предпочтительного ответа, это сработало плохо,

  3. Я думал о создании порога (для весов) для изменения еще на 1 бит.Чем меньше этот порог, тем больше бит вам требуется,

  4. У меня есть ситуация: a-> b w1;b-> a w2;w1 >> w2, поэтому направление значимо.

1 Ответ

1 голос
/ 19 февраля 2010

что вы можете сделать, это использовать самоорганизующуюся карту (SOM) с топологией фиксированной длины, скажем, N-битными словами, например, например, если N = 8, то каждая ячейка в SOM имеет ровно 8 соседей (те, у которых был перевернут один бит). Теперь, если у вас есть K [словарь] слов, вы можете закодировать каждое [словарь] слово как вектор действительных чисел в диапазоне от 0 до 1, так что у i-го слова i-й элемент имеет значение 1, а у других 0. «расстояние» между двумя произвольными векторами a1 ... aK и b1 ... bK путем суммирования по

 i,j : ai * bj * distance(ai, bj)

, который дает метрику расстояния для запуска алгоритма SOM. Когда SOM стабилизируется, слова [словарь] рядом друг с другом в вашей метрике находятся рядом друг с другом в топологии карты, из которой вы тривиально получаете кодировку в виде [двоичных] слов.

Обратите внимание, что на карте должно быть больше ячеек, чем слов, т. Е. 2 ​​** N> K.

Этот ответ, конечно, предполагает наличие самоорганизующихся карт. Увидеть http://en.wikipedia.org/wiki/Self-organizing_map

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...