Можно ли использовать CRF (условные случайные поля) для маркировки целых предложений?

Я пытаюсь использовать машинное обучение для обозначения предложений (каждое предложение с одной меткой, я предполагаю, что предложения не зависят друг от друга). Я думал, что линейная модель CRF подойдет для этого случая, но у меня есть несколько вопросов.

Я попытался использовать CRF ++ (другие реализации, которые я видел, похоже, имеют аналогичные форматы). Он использует предложения в качестве входных данных, но метка вывода присваивается каждому токену. Как использовать один ярлык для всего предложения? (Хаком, о котором я подумал, было бы назначить значительную метку только для точки в тестовых данных и рассматривать ее как метку вывода для всего предложения.)

Как можно использовать предложения различной длины? Конфигурация обучения требует указать, какие токены учитываются при анализе текущего токена. Но предложение может иметь большое или небольшое количество токенов, и я хочу использовать все токены из предложения (не более или менее), чтобы использовать всю информацию.

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

2 ответа

Как сказала Ашема, возможно, вы используете не тот инструмент. CRF обычно используются, если вы хотите пометить последовательности, например, последовательность слов или даже последовательность предложений. Но так как вы предполагаете, что ваши предложения независимы друг от друга, вы можете захотеть взглянуть на каждое из них независимо. Поэтому ваша задача - не маркировка последовательности, а простая классификация. Для этого вы можете использовать несколько других моделей, таких как SVM, Naive Bayes, kNN и многие другие.

Я думаю, что вы используете не тот инструмент для работы. Чтобы классифицировать все предложение, вы можете попробовать использовать что-то вроде быстрого текста Facebook.

https://github.com/facebookresearch/fastText

Другие вопросы по тегам