Недавно я работал над обучением модели частей речи для хинди в Spacy. Я уже обучил модель, но при анализе любого текста атрибут .pos_
любого токена всегда указывает на X
. Тем не менее, детализированные теги .tag_
, с которыми обучалась модель, верны.
Сопоставление между этими точными тегами и «универсальными» тегами (ГЛАГОЛ, СУЩЕСТВИТЕЛЬНОЕ, ПРИЛАГ и т. д.) находится в файле spacy/lang/hi/tag_map.py
.
Lemma यूरोप, Lemmatized: False, POS: X, TAG: NNP
Lemma के, Lemmatized: False, POS: X, TAG: PSP
Lemma जिन, Lemmatized: False, POS: X, TAG: DEM
Lemma राजनीतिक, Lemmatized: False, POS: X, TAG: JJ
Lemma दलों, Lemmatized: False, POS: X, TAG: NN
Lemma को, Lemmatized: False, POS: X, TAG: PSP
Lemma व्यवस्था, Lemmatized: False, POS: X, TAG: NN
Lemma ,, Lemmatized: False, POS: SYM, TAG: SYM
Lemma राजनेताओं, Lemmatized: False, POS: X, TAG: NN
Lemma और, Lemmatized: False, POS: X, TAG: CC
Lemma मीडिया, Lemmatized: False, POS: X, TAG: NN
Lemma द्वारा, Lemmatized: False, POS: X, TAG: PSP
Lemma अति, Lemmatized: False, POS: X, TAG: INTF
Lemma दक्षिणपंथी, Lemmatized: False, POS: X, TAG: NN
Lemma कहा, Lemmatized: False, POS: X, TAG: VM
Lemma जाता, Lemmatized: False, POS: X, TAG: VAUX
Lemma है, Lemmatized: False, POS: X, TAG: VAUX
Lemma (, Lemmatized: False, POS: SYM, TAG: SYM
Lemma परन्तु, Lemmatized: False, POS: X, TAG: CC
Lemma मेरी, Lemmatized: False, POS: X, TAG: PRP
Lemma ओर, Lemmatized: False, POS: X, TAG: NST
Lemma से, Lemmatized: False, POS: X, TAG: PSP
Lemma सभ्यतावादी, Lemmatized: False, POS: X, TAG: NNP
Lemma कहा, Lemmatized: False, POS: X, TAG: VM
Lemma जाता, Lemmatized: False, POS: X, TAG: VAUX
Lemma है, Lemmatized: False, POS: X, TAG: VAUX
Lemma ), Lemmatized: False, POS: SYM, TAG: SYM
Lemma उनकी, Lemmatized: False, POS: X, TAG: PRP
Lemma आलोचना, Lemmatized: False, POS: X, TAG: NN
Lemma उनकी, Lemmatized: False, POS: X, TAG: PRP
Lemma भूलों, Lemmatized: False, POS: X, TAG: NN
Lemma और, Lemmatized: False, POS: X, TAG: CC
Lemma अतिवादिता, Lemmatized: False, POS: X, TAG: NN
Lemma के, Lemmatized: False, POS: X, TAG: PSP
Lemma कारण, Lemmatized: False, POS: X, TAG: PSP
Lemma की, Lemmatized: False, POS: X, TAG: VM
Lemma जाती, Lemmatized: False, POS: X, TAG: VAUX
Lemma है|, Lemmatized: False, POS: X, TAG: NNPC
Немного изучив, я обнаружил, что причина, по которой .pos_
имеет это значение X
, заключается в том, что в сгенерированном двоичном файле lang_model/tagger/tag_map
все его ключи указывают на 101
, который является «кодом», назначенным части речи X
, то есть Other
.
Я делаю вывод, что он генерирует ключи, указывающие на 101
, потому что нет информации о том, как он должен сопоставлять каждый из предоставленных тегов из набора данных с «универсальными». Дело в том, что я могу предоставить tag_map.py
в определении моего класса Hindi(Language)
, но при передаче текста через конвейер он в конечном итоге будет использовать карту тегов, определенную в каталоге tagger/
, созданном с помощью вывода команды train
.
Вот ссылка, которая прояснит то, что я объясняю: https://universaldependencies.org/tagset-conversion/hi-conll-uposf.html
Первый элемент первого столбца (CC
, DEM
, INTF
и т. д.) предоставляется модели. Универсальные теги — это теги из второго столбца.
Мой вопрос: где я должен определить tag_map, чтобы перезаписать карту, сгенерированную командой spacy train
?