Создание и использование тегированных корпусов с помощью NLTK

Я пытаюсь создать корпус с тегами на малагасийском (мой родной язык). Я следовал инструкциям в документе Обработка текста Python и обработка естественного языка, а также на странице https://www.nltk.org/book/ch05.html . Мне удалось создать свой собственный набор тегов части речи на основе универсального набора тегов части речи и небольшого корпуса тегов. Это мой код:

        import os, os.path
        path = os.path.expanduser('D:/Mes documents/MY_POS_tagger/nltk_data')
        if not os.path.exists(path):
            os.mkdir(path)
        print("OS path done :%s"%os.path.exists(path))


        import nltk.data
        nltk.data.path.append('D:/Mes documents/MY_POS_tagger/nltk_data')
        print("NLTK data path done:%s"%(path in nltk.data.path))

        #read a POSfile
        import nltk
        from nltk.corpus.reader import TaggedCorpusReader
        from nltk.tag import UnigramTagger

   #there's only one document malagasy.pos, it's there where my tagged corpora.

    reader = TaggedCorpusReader('D:/Mes documents/MY_POS_tagger/nltk_data/corpora/cookbook', r'.*\.pos')


    train_sents=reader.tagged_sents()
    tagger=UnigramTagger(train_sents)

#dago.txt contain just sentences without tag, i just wanted to test if the tag i assign on the POS file will work 

    text=(nltk.data.load('corpora/cookbook/dago.txt', format='raw'))
    text_tokenized=nltk.word_tokenize(text)
    print tagger.tag(text_tokenized)

У меня есть этот результат:

OS path done :True
NLTK data path done:True
[('Matory', u'VB'), ('ny', None), ('alika', u'NN')]

Итак, я вижу, что это работает, но я прочитал в документе выше, что мне нужно тренировать свой таггер. Поэтому я спрашиваю, может ли кто-нибудь предложить мне, как я могу это сделать, потому что я читал, что мне нужно рассолить обученный тегировщик, а также обучить и комбинировать тегеры Ngram, но я не понимаю, что означает рассол или что он делает. И я не знаю, является ли то, что я делаю сейчас, правильным путем для создания и использования тегированных корпусов с помощью NLTK. Спасибо


person Nambi    schedule 31.07.2018    source источник
comment
Может эта ссылка вам поможет? Как создать корпус с POS-тегами с помощью NLTK? Veloma   -  person Hagamainty    schedule 23.08.2018
comment
спасибо за совет, проверю :)   -  person Nambi    schedule 27.08.2018


Ответы (1)


мне нужно мариновать обученный тегировщик, а также тренировать и комбинировать тегеры Ngram, но я не понимаю, что означает маринование или что делать

Что касается этой части вашего вопроса, Pickle — это библиотека на Python, которая позволяет выгружать и загружать двоичные данные на / с вашего жесткого диска, связанные с любым объектом Python по вашему выбору.

Информация здесь: https://docs.python.org/3/library/pickle.html

Однако вам было предложено взять предварительно обученный тегировщик, который, вероятно, принадлежал бы другому языку, и добавить ngrams, извлеченные из тегированных корпусов на малагасийском языке, которые вы создали. Однако, если у вас есть достаточно большой корпус документов с тегами на вашем родном языке, может быть полезнее для вас и для сообщества НЛП разработать специальный тег для малагасийского языка. После быстрого поиска я не смог найти ничего в Интернете, и поэтому было бы полезно подготовить его.

person Daneel R.    schedule 09.09.2018