웹사이트 검색

NLTK 설치 및 인간 언어 처리에 사용


이 페이지에서

  1. 2 NLTK 다운로드 및 설치
  2. 3 NLTK 데이터 설치
  3. 4 NLTK 사용 예
    1. 4.1 EOS 감지
    2. 4.2 토큰화\n
    3. 4.3 POS 태깅
    4. 4.4 청킹 및 추출

    NLTK는 \Natural Language Tool Kit\를 나타냅니다. 인간 언어 데이터를 정리하고 처리하는 데 사용되는 Python 프로그래밍 모듈입니다. 풍부한 내장 도구는 자연어 처리(일명 NLP) 분야에서 애플리케이션을 쉽게 구축하는 데 도움이 됩니다.

    말뭉치는 특정 언어로 존재하는 단어의 집합이며 NLTK는 작업할 50개 이상의 서로 다른 말뭉치를 제공하며 POS 태깅, 언어 끝 태깅, 토큰화, 의미론적 추론, 분류 등과 같은 핵심 라이브러리를 제공합니다. 다음은 이에 대한 간략한 설명입니다. NLTK를 사용하여 쉽게 수행할 수 있는 NLP에 사용되는 5가지 주요 기능 또는 단계:

    • 말 끝 태깅(EOS 태깅): 여기에는 텍스트를 의미 있는 문장 모음으로 제동하는 것이 포함됩니다.\n
    • 토큰화: 문장을 단어로 분할합니다. 그것은 공백에서 작동할 뿐만 아니라 (.,?,!,etc)와 같은 불용어를 제거하며 중복 단어가 제거됨을 의미하는 집합입니다.\n
    • 품사 태깅(POS 태깅): 단어의 유형을 나타내는 태그를 지정합니다. 태그는 코딩되어 있습니다. 명사, 과거형 동사 등의 경우 각 단어에 태그가 지정됩니다.\n
    • 청킹: 비슷한 태그로 단어를 그룹화하는 과정입니다. 청킹의 결과는 트리와 같은 구조입니다.
    • 추출: 데이터가 청크되면 필요에 따라 명사만 추출하거나 동사 등만 추출할 수 있습니다.\n

    자, 이것은 매우 멋져 보일 수 있지만 이것이 사용할 수 있는 최고의 모듈입니까? 그에 대한 답은 당면한 작업에 따라 다릅니다. 일반적으로 NLTK는 느리지만 매우 정확합니다. PsyKit과 같은 다른 모듈은 더 빠르지만 정확도에 대한 절충점이 있습니다. 따라서 정확도가 시간보다 중요한 애플리케이션의 경우 NLTK가 올바른 선택입니다. 이 게시물은 NLTK를 설치하고 예제와 함께 사용하는 방법을 보여줍니다.

    2 NLTK 다운로드 및 설치

    NLTK는 "pip" 설치 프로그램을 사용하여 매우 쉽게 설치할 수 있습니다. NLTK를 설치하기 전에 numpy도 설치해야 합니다. 다음 명령을 사용하십시오.

    sudo pip install -U numpy 
    sudo pip install -U nltk

    아래 이미지는 nltk의 실행을 보여줍니다. numpy 설치는 비슷하지만 시스템 프로세서에 따라 설치하는 데 시간이 더 걸릴 수 있습니다.

    완료되면 다음 그림의 두 가지 명령을 사용하고 오류 없이 실행되는지 확인하여 올바르게 설치되었는지 테스트할 수 있습니다.

    3 NLTK 데이터 설치

    nltk가 설치되었음을 확인하면 NLTK 데이터를 다운로드하여 설치해야 합니다. Nltk Data는 말뭉치와 언어의 모든 단어, 다양한 문법 구문, 장난감 문법, 훈련된 모델 등으로 구성되어 있으며 다양한 기능을 적용하여 사용자가 언어를 쉽게 처리할 수 있도록 도와줍니다. nltk 데이터 설치는 1GB 이상의 데이터를 다운로드해야 하는 긴 프로세스입니다. nltk 데이터를 다운로드하려면 터미널에 "python"을 입력하여 Python 인터프리터를 열고 다음 두 명령을 입력하십시오.

    >>> import nltk >>> nltk.download()

    nltk 다운로더를 표시하는 새 창이 열립니다. "usr/share/nltk_data" 폴더에 설치하십시오. 완료되면 아래 이미지와 같이 명령을 입력하고 출력을 가져와 다운로드되었는지 테스트합니다.

    4 NLTK 사용 예

    이제 NLTK를 사용하여 수행되는 NLP 작업의 몇 가지 예를 시도해 볼 수 있습니다. EOS 감지, 토큰화, POS 태깅, 청킹 및 추출의 5가지 프로세스가 여기에서 시연됩니다.

    4.1 EOS 감지

    음성 끝 태그 지정은 텍스트를 의미 있는 문장 모음으로 나눕니다. 추가 단계가 개별 문장에서 작동하기 때문에 이렇게 합니다. 아래는 EOS 감지의 예와 출력입니다.

    >>> import nltk
    >>> text = "Mrs. Hudson made a cup of tea. She is a wonderful woman."
    >>> sentences = nltk.tokenize.sent_tokenize(text)
    >>> sentences
    ['Mrs. Hudson made a cup of tea.', 'She is a wonderful woman.']
    >>> 
    

    nltks 말뭉치의 사용은 위에서 볼 수 있습니다. \Mrs.\는 문장이 아니라 약어라는 것을 알고 있습니다. 따라서 그것은 문장 자체가 아니라 문장의 일부로 포함됩니다.

    4.2 토큰화

    이 단계는 개별 문장에서 작동하여 토큰으로 분할합니다. 그래서 우리는 토큰을 포함하는 목록 목록을 얻습니다. 아래 예는 이전 단계의 연속입니다.

    >>> tokens = [nltk.tokenize.word_tokenize(s) for s in sentences]
    >>> tokens
    [['Mrs.', 'Hudson', 'made', 'a', 'cup', 'of', 'tea', '.'], ['She', 'is', 'a', 'wonderful', 'woman', '.']]
    >>> 
    

    여기서 우리는 토큰이 단어로 구성되어 있을 뿐만 아니라 문장의 끝으로 구성되어 있음을 알 수 있습니다. 토큰화는 문장을 단어로 분할할 뿐만 아니라 단어를 구분하기 위해 문자가 아닌 공백이 있는 토큰으로 문장을 분할하는 기능도 있다는 점에 유의하는 것이 중요합니다.

    4.3 POS 태깅

    POS는 pat-of-speech를 의미하며 이 단계에서 토큰 목록의 각 토큰에 POS 정보가 할당됩니다. 이 각 POS 정보는 그것이 어떤 종류의 음성인지를 나타냅니다. 예를 들어 태그 VBD는 단순 과거형 동사를 나타내고 JJ는 형용사를 나타냅니다. 이 단계는 다음 단계에서 단어를 정렬하거나 정렬하는 데 도움이 됩니다. 아래에 예가 나와 있습니다.

    >>> PosTokens = [nltk.pos_tag(e) for e in tokens]
    >>> PosTokens
    [[('Mrs.', 'NNP'), ('Hudson', 'NNP'), ('made', 'VBD'), ('a', 'DT'), ('cup', 'NN'), ('of', 'IN'), ('tea', 'NN'), 
    ('.', '.')], [('She', 'PRP'), ('is', 'VBZ'), ('a', 'DT'), ('wonderful', 'JJ'), ('woman', 'NN'), ('.', '.')]]
    >>> 
    

    4.4 청킹 및 추출

    청킹은 태그를 기반으로 복잡한 토큰을 조립하는 과정을 말합니다. Nltk는 청킹에 대한 사용자 지정 문법을 정의할 수도 있습니다. 반면에 추출은 기존 청크를 살펴보고 사람, 조직, 위치 등과 같은 명명된 엔터티로 태그를 지정하는 프로세스를 의미합니다. 예를 들면 다음과 같습니다.

    >>> chunks = nltk.ne_chunk_sents(PosTokens)
    >>> for each in chunks:
    ...   print each
    ... 
    (S
      Mrs./NNP
      (PERSON Hudson/NNP)
      made/VBD
      a/DT
      cup/NN
      of/IN
      tea/NN
      ./.)
    (S She/PRP is/VBZ a/DT wonderful/JJ woman/NN ./.)
    >>> 
    

    Mrs. Hudson이 사람으로 인식되었음을 위에서 볼 수 있습니다. 이 모든 정보는 트리 형태로 저장됩니다.

    5. 결론

    위에 제공된 샘플에서 데이터를 얼마나 쉽게 처리할 수 있는지 확인할 수 있습니다. 이 5단계가 적용되면 다양한 알고리즘을 적용하여 데이터를 처리/순위화하고 유용한 정보를 추출할 수 있습니다. 이것을 사용할 수 있는 한 가지 예는 "자동 텍스트 요약"입니다. 결론적으로 Nltk는 강력하고 정확하지만 다른 도구에 비해 약간 느린 도구입니다. 정확성을 우선으로 하는 애플리케이션에 사용할 수 있습니다.

    6 공식 링크

    사용법과 함께 nltk의 수백 가지 작업 및 기능에 대한 자세한 사용법 정보는 공식 웹 사이트를 방문하십시오: http://www.nltk.org/genindex.html