Преобразование вывода нейронной сети в POS-тег

Я ознакомился с руководством по использованию нейронной сети для выполнения задач тегирования части речи

https://becominghuman.ai/part-of-speech-tagging-tutorial-with-the-keras-deep-learning-library-d7f93fa05537

Однако я застрял, когда речь заходит об использовании модели для прогнозирования реальных слов, т. Е. Помечать слова из нового корпуса.

Это функция, используемая в процессе обучения, я предполагаю получить данные обучения в формате, который мы можем использовать, но я еще не понял этого.

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-теги?

0 ответов

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