Отказ в использовании CRF+0,58 Поезд NE Model

Когда я использую CRF++0.58 для моделирования NE и Progarm есть проблема:

"Чтение обучающих данных:tagger.cpp(399) [feature_index_->buildFeatures(this)] 0.00s"

  1. развивающая среда:
    • Red Hat Linux 6,5, GCC 5,0,CRF++0,58
  2. Шаблон письменного объекта:
    • шаблон
  3. Набор данных:
    • Boson_train.txt
    • Boson_test.txt
    • первый столбец - слова, второй столбец - pos, третий столбец - NER tagger
  4. эта проблема:
    • когда я хочу обучить модели NER, я набираю эти предложения "crf_learn -f 3 -c 4.0 template Boson_train crf_model", и я получаю это уведомление "чтение данных обучения: tagger.cpp (399) [feature_index _-> buildFeatures (this)] 0,00s". Я не могу понять язык C++, поэтому я не могу решить проблему.
  5. метод, который я попробовал:
    • 1. изменить тип кодирования набора данных. Я использую notepad++, чтобы изменить "utf-8 без спецификации" на "utf-8". Это не сработало.
    • 2. измените разделитель с '\t' на ' '(пробел). Это не сработало.
    • 3. И я думаю, что, возможно, шаблон был неправильным. Так что я использую crf++0.58/example/seg/template для теста. Это сработало. Но этот шаблон прост, поэтому я использую /example/JapaneseNE/template, который больше похож на мой шаблон функций. Это не сработало. Тогда check я проверяю пример JapaneseNE. Это хорошо работает. Так что я запутался. Есть ли кто-то, кто может мне помочь.
  6. шаблон

    • U00:% х [-2,0]
    • U01:% х [-1,0]
    • U02:% х [0,0]
    • U03:% х [1,0]
    • U04:% х [2,0]
    • U05:% х [-2,0] /% х [-1,0] /% х [0,0]
    • U06:% х [-1,0] /% х [0,0] /% х [1,0]
    • U07:% х [0,0] /% х [1,0] /% х [2,0]
    • U08:% х [-1,0] /% х [0,0]
    • U09:% х [0,0] /% х [1,0]

    • U10:% х [-2,1] /% х [0,1]

    • U11:% х [-2,1] /% х [1,1]
    • U11:% х [-1,1] /% х [0,1]
    • U12:% х [0,0] /% х [0,1]
    • U13:% х [0,1] /% х [1,1]
    • U14:% х [0,1] /% х [2,1]
    • U15:% х [-1,0] /% х [0,1]
    • U16:% х [-1,0] /% х [-1,1]
    • U17:% х [1,0] /% х [1,1]
    • U18:% х [1,0] /% х [1,1]
    • U19:% х [2,0] /% х [2,1]

    • U20:% х [-1,2]

    • U21:% х [-2,2]
    • U22:% х [0,1] /% х [-1,2]
    • U23:% х [0,1] /% х [-2,2]
    • U24:% х [0,0] /% х [-1,2]
    • U25:% х [0,0] /% х [-2,2]
    • U26:% х [-1,2] /% х [-2,2] /% х [0,1]
    • U27:% х [-2,2] /% х [0,1] /% х [1,1]
    • U28:% х [-1,1] /% х [-1,2] /% х [0,1]
    • U29:% х [-1,2] /% х [0,0] /% х [0,1]
  7. Boson_train
    • 浙江 ns ​​B_product_name
    • I b I_product_name
    • 杭州 ns I_product_name
    • 4 м B_time
    • I м я_ время
    • 25 м I_time
    • I м я_ время
    • Out нг Out
    • (X Out
    • Out n Out
    • х Out
    • x B_person_name
    • 施宇翔 nr I_person_name
    • х Out
    • B n B_person_name
    • х Out
    • 英 英 nr B_person_name
    • ) X Out
    • Out n Out
    • 很 зг Out
    • "Х Out
    • Out nr Out
    • ”X Out
    • Out х Out
    • Out р Out
    • 信 信 vn B_product_name
    • Out n Out
    • N品 n Out
    • Out х Out
    • Out v Out
    • Out v Out
    • B n B_person_name
    • Out d Out

1 ответ

Вы отлаживали в правильном направлении. Проблема действительно в вашем файле шаблона.

Ваши тренировочные данные имеют 3 столбца (столбец 0:wordколонка 1:pos-tag и колонка 2:tag).

Вы не можете использовать tag как функция, но ваш файл шаблона имеет ссылку на него (т. е. столбец 2) во многих определениях функций (см. с U20 по U29). Ваше обучение должно работать после удаления / исправления.

Надеюсь это поможет:)

Вы также можете просмотреть эти видеоуроки для лучшего понимания файлов шаблонов и обучения NER с CRF ++:

1) https://youtu.be/GJHeTvDkIaE

2) https://youtu.be/Ur5umC4BwN4

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