Преобразование вывода нейронной сети в POS-тег
Я ознакомился с руководством по использованию нейронной сети для выполнения задач тегирования части речи
Однако я застрял, когда речь заходит об использовании модели для прогнозирования реальных слов, т. Е. Помечать слова из нового корпуса.
Это функция, используемая в процессе обучения, я предполагаю получить данные обучения в формате, который мы можем использовать, но я еще не понял этого.
def addBasicFeatures(sentence_terms, index) :
""" Compute some very basic word features.
@ param sentence_terms: [w1, w2, ...]
@ type sentence_terms: list
@ param index: the index of the word
@ type index: int
@ return: dict containing features
@ rtype: dict
"""
term = sentence_terms[index]
return {
'nb_terms' : len(sentence_terms),
'term' : term,
'is_first' : index == 0,
'is_last' : index == len(sentence_terms) - 1,
'is_capitalized' : term[0].upper() == term[0],
'is_all_caps' : term.upper() == term,
'is_all_lower' : term.lower() == term,
'prefix-1' : term[0],
'prefix-2' : term[:2],
'prefix-3' : term[:3],
'suffix-1' : term[-1],
'suffix-2' : term[-2:],
'suffix-3' : term[-3:],
'prev_word' : '' if index == 0 else sentence_terms[index - 1],
'next_word' : '' if index == len(sentence_terms) - 1 else sentence_terms[index + 1]
}
Затем я хочу использовать свою обученную модель для прогнозирования новых данных.
dict_vectorizer = dictVectorizer()
docs = open(dataPATH + "/untagged/301.txt")
docs = docs.read().splitlines()
taggedSents = []
for line in docs :
test = addBasicFeatures(line, 0)
vector = dict_vectorizer.transform(test)
print(model.predict(vector))
[OUT] [[0.18774633 0.08140194 0.0259537 0.00527964 0.01296406 0.00624884
0.29306188 0.15709658 0.02109222 0.00494705 0.00405352 0.20015429]]
Результаты, которые я получаю при печати прогноза модели, представляют собой список значений, как я могу преобразовать их в POS-теги?