Open lovit opened 5 years ago
sequential labeling parts 를 collins_average_perceptron
으로 옮기는 중이며, 이 repository 의 학습용 데이터를 만드는 코드.
train_data.num_sents = -1
with open('../../../git/collins_average_perceptron/data/word_sequence.txt', 'w', encoding='utf-8') as f:
for words_text, morphs_text in train_data:
words = text_to_words(words_text, morphs_text)
wordtags = [(word.word, word.tag0) for word in words]
_, tags = zip(*wordtags)
tags = ' '.join(tags)
f.write('BOS {} EOS\t{}\n'.format(words_text.strip(), tags))
Collins, M, "Discriminative Training Methods for Hidden Markov Models: Theory and Experiments with Perceptron Algorithm", EMNLP, 2002 의 방법은 segmentation 이 포함된 문제에는 적합하지 않은 것으로 짐작됨.
Word sequence 에 대한 sequential labeling version 에서는 잘 학습되는지 검증부터 할 것. segmentation (word lookup) issues 가 함께 섞여있다보니 학습 방법이 잘못된 것인지, 코드에 오류가 있는 것인지 디버깅하기가 어려움