단어문서행렬과 형태소 분석

Python을 통한 단어문서행렬과 형태소 분석


수강중

15. 명사 추출

한국어 텍스트에서 명사만 추출해보자.

형태소 분석을 해 볼 예시 문장은 다음과 같다.

text = '오늘 커피를 마셨다.'
doc = nlp(text)

명사 표시는 n으로 시작하므로 해당하는 형태소만 출력한다.

for word in doc.sentences[0].words:
    lemma = word.lemma.split('+')
    xpos = word.xpos.split('+')

    for tok, pos in zip(lemma, xpos):
        if pos.startswith('n'):
            print(tok)
오늘
커피

문장을 넣으면 명사를 추출하는 함수 extract_noun을 아래와 같이 정의합니다.

def extract_noun(text):
    doc = nlp(text)
    for sentence in doc.sentences:
        for word in sentence.words:
            lemma = word.lemma.split('+')
            xpos = word.xpos.split('+')
            for tok, pos in zip(lemma, xpos):
                if pos.startswith('n'):
                    yield tok

extract_noun 함수에 문장을 넣으면 명사가 추출됩니다. 여러 문장을 넣어서, 명사가 추출되는지 확인합니다.

list(extract_noun('편의점에서 커피를 샀다.'))
['편의점', '커피']
list(extract_noun('토끼는 당근을 좋아할까?'))
['토끼', '당근']