Как использовать целевой ярлык как функцию в CRF++?

Я пытаюсь построить китайский сегментатор слов, как эта статья. Если я правильно понимаю, они используют подход сегментации с 2 тегами с CRF++. Мой вопрос, как сделать переход тега в этой статье (например, T(-1)C(0)T(0)) в качестве шаблона элемента в CRF++? Например, для таких данных обучения:

共 B

同 М

創 B

造 М

美 B <- Текущее слово

好 М

的 B

新 B

世 B

紀 М

Возможно ли иметь функцию T(-1)C(0)T(0) -> M/美/B в CRF++? Я пытался добавить функцию tempalte, такую ​​как U01:%x[-1,1]/%x[0,0]/%x[0,1], но это не удалось. Меня также смущает, что, поскольку тег B/I является тегом, который мы хотим пометить в данных тестирования (например, необработанные предложения на китайском языке), почему можно использовать этот тег в качестве функции в статье? Или я что-то не так понял?

1 ответ

Такие особенности, как T(-1)C(0)T(0) -> M/美/B в CRF++, могут быть представлены как:

В01:% х [0,0]

Обратите внимание на разницу. B, а не U

если вы используете U01:%x[0,0], это означает, что такая функция, как "美/B".

Это также немного смутило меня, когда я впервые использовал CRF++ 6 лет назад. Надеюсь, это поможет вам.


Следует отметить, что в CRF описание функции будет включать метку. Я имею в виду следующее: 0-1:текущий символ "美", а текущий ярлык "B"

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

Итак, в вашем примере U01:%x[0,0] вводит 2 функции автоматически: "U01:美_y=B" и "U01:美_y=M"

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