lovit / lattice_based_tagger

Lattice based Korean Morphological analyzer & Part of Speech Tagger
0 stars 0 forks source link

Sequential labeling 과 Segmentation & labeling 의 차이 검증 #7

Open lovit opened 5 years ago

lovit commented 5 years ago

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 가 함께 섞여있다보니 학습 방법이 잘못된 것인지, 코드에 오류가 있는 것인지 디버깅하기가 어려움

lovit commented 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))