Я работаю над POS Tagger, используя Python и Keras. Данные, которые у меня есть, используют теги STTS, но я должен создать Tagger для универсального набора тегов. Так что мне нужно перевести это.
Сначала я подумал сделать словарь и просто заменить теги поиском, но потом увидел вариант установки набора тегов с помощью TaggedCorpusReader. (например, «коричневый»)
Но мне не хватает списка возможных наборов тегов, которые можно там использовать. Могу ли я как-то использовать набор тегов STTS или мне нужно сделать словарь самому?
Пример источника: Код № 3: сопоставление тегов корпуса с универсальным набором тегов https://www.geeksforgeeks.org/nlp-customization-using-tagged-corpus-reader/
corpus = TaggedCorpusReader(filePath, "standard_pos_tagged.txt", tagset='STTS') #?? doesn't work sadly
# ....
trainingCorpus.tagged_sents(tagset='universal')[1]
В итоге получилось примерно так: (большое спасибо alexis)
with open(resultFileName, "w") as output:
for sent in stts_corpus.tagged_sents():
for word, tag in sent:
try:
newTag = mapping_dict[tag];
output.write(word+"/"+newTag+" ")
except:
print("except " + str(word) + " - " + str(tag))
output.write("\n")