lovit / komoran3py

Komoran 3 in Python
11 stars 1 forks source link

안녕하세요! 혹시 품사 태깅 때 형용사/동사 원형으로 변형되게 할 수 있을까요? #4

Open knightas7 opened 4 years ago

knightas7 commented 4 years ago

안녕하세요. Konlpy 에서 여러 분석기 활용하다가 사용자 사전 정의에 매력을 느껴 찾아와 여쭤보게 되었습니다.

너무나 편리한 분석기 개발 감사드립니다. 다름 아니라, 품사 태깅 사용 시 혹시 동사와 형용사를 윈형으로 변화시켜 가져오는 방안이 있을까요? Okt의 Okt.pos()에서 stem옵션 True로 하는 기능이 편했었거든요... 혹시나 관련한 Workaround라도 있을까요?

lovit commented 4 years ago

안녕하세요. 코모란의 경우에는 형태소 분석 과정에서 용언 (동사, 형용사)를 어간 + 어미로 분리합니다. 그리고 동사, 형용사의 원형은 어간 + 다 입니다.

lovit commented 4 years ago
komoran.pos('적었다')
[('적', 'VA'), ('었', 'EP'), ('다', 'EC')]
def lemmatize(sentence):
    morphtags = komoran.pos(sentence)
    morphtags = [(m if t != 'VA' and t != 'VV' else m + '다', t) for m, t in morphtags]
    return morphtags

lemmatize('적었다')
[('적다', 'VA'), ('었', 'EP'), ('다', 'EC')]

뒤의 어미를 적절히 제거하면 더 깔끔하겠지만, 그 부분 제외하고 빠르게 답변 적어 드립니다.

knightas7 commented 4 years ago
komoran.pos('적었다')
[('적', 'VA'), ('었', 'EP'), ('다', 'EC')]
def lemmatize(sentence):
    morphtags = komoran.pos(sentence)
    morphtags = [(m if t != 'VA' and t != 'VV' else m + '다', t) for m, t in morphtags]
    return morphtags

lemmatize('적었다')
[('적다', 'VA'), ('었', 'EP'), ('다', 'EC')]

뒤의 어미를 적절히 제거하면 더 깔끔하겠지만, 그 부분 제외하고 빠르게 답변 적어 드립니다.

와 신속한 답변 정말 감사드립니다! 그러네요. "어간+다" 형식 으로 보면 되겠군요...! 뭔가 원형 사전 참조하는 방식이 있는훌 알았습니다. 집에 가는 대로 테스트 적용해보겠습니다. 감사드립니다!