Бинаризация - это акт преобразования красочных признаков объекта в векторы чисел, чаще всего двоичных векторов, чтобы сделать хорошие примеры для алгоритмов классификатора.
Если нам нужно бинарировать предложение "Кот съел собаку", мы могли бы начать с назначения каждому слову идентификатора (например, cat-1, ate-2, the-3, dog-4), а затем просто заменить слово посредством этого ID, дающее вектор < 3,1,2,3,4 > .
Учитывая эти идентификаторы, мы могли бы также создать двоичный вектор, предоставив каждому слову четыре возможных слота и установив слот, соответствующий определенному слову, одному, предоставив вектор < 0,0,1,0,1,0, 0,0,0,1,0,0,0,0,0,1 > . Последний метод, насколько мне известно, обычно называется методом мешков слов.
Теперь для моего вопроса, что такое метод бинаризации best, когда речь заходит о описании функций для обработки естественного языка в целом, и синтаксический анализ зависимостей на основе перехода (с Nivres алгоритм) в частности?
В этом контексте мы не хотим кодировать все предложение, а скорее текущее состояние синтаксического анализа, например, верхнее слово в стеке и первое слово во входной очереди. Поскольку порядок очень важен, это исключает метод мешков слов.
С best, я имею в виду метод, который делает данные наиболее понятными для классификатора, не используя лишнюю память. Например, я не хочу, чтобы слово bigram использовало 400 миллионов функций для 20000 уникальных слов, если только 2% биграмм действительно существуют.
Поскольку ответ также зависит от конкретного классификатора, меня в основном интересуют максимальные энтропийные модели (liblinear), векторные векторные машины (libsvm) и персептроны, но также приветствуются ответы, относящиеся к другим моделям.