Я пытаюсь создать корпус с тегами на малагасийском (мой родной язык). Я следовал инструкциям в документе Обработка текста 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. Спасибо