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