Python에서 NLTK를 사용하여 텍스트 토큰화

텍스트 토큰화는 기본적인 자연어 처리(NLP) 기술이며 그러한 기술 중 하나는 다음과 같습니다. 토큰화.  텍스트를 더 작은 구성요소나 토큰으로 나누는 과정입니다. 이는 다음과 같습니다.

  • 단어: 나는 NLP를 좋아합니다 → ['나는' '사랑합니다' 'NLP']
  • 문장: 저는 NLP를 좋아합니다. 파이썬은 훌륭합니다. → ['나는 NLP를 좋아해요.' '파이썬은 훌륭해요.']

Python의 인기 라이브러리 사용  NLTK (Natural Language Toolkit) 텍스트를 의미 있는 단위로 분할하는 것은 간단하면서도 매우 효과적입니다.

기본 구현

Python에서 NLTK를 사용하여 토큰화를 구현하는 방법을 살펴보겠습니다.

1단계: 설치 및 설정

설치하다 가리키다 문장 및 단어 토큰화에 필요한 토크나이저 모델.

Python
   !  pip   install   nltk   import   nltk   nltk  .  download  (  'punkt'  )   

2단계: 문장 토큰화

sent_tokenize()는 구두점과 약어를 처리하는 문장 목록으로 문자열을 분할합니다.

Python
   from   nltk.tokenize   import   sent_tokenize   text   =   'NLTK is a great NLP toolkit. It makes processing text easy!'   sentences   =   sent_tokenize  (  text  )   print  (  sentences  )   

산출:

['NLTK는 훌륭한 NLP 툴킷입니다.' '텍스트 처리가 쉬워집니다!']

3단계: 단어 토큰화

  • word_tokenize()는 문장을 별도의 토큰으로 단어와 문장 부호로 분할합니다.
  • 수축 구두점 숫자 등을 처리합니다.
Python
   from   nltk.tokenize   import   word_tokenize   sentence   =   'Tokenization is easy with NLTK's word_tokenize.'   words   =   word_tokenize  (  sentence  )   print  (  words  )   

산출:

['토큰화'는' 'NLTK' '''word_tokenize' ''로 ''쉽습니다''.']

몇 가지 예를 더 살펴보겠습니다.

1. 워드펀트토크나이저

그것 텍스트를 알파벳 문자와 알파벳이 아닌 문자로 분할합니다.

  • 단어 문자와 구두점의 모든 시퀀스를 토큰으로 분리합니다.
  • 특히 수축이 갈라집니다(Don't가 Don't가 됨).
  • 이메일을 이메일로 분할합니다.
Python
   from   nltk.tokenize   import   WordPunctTokenizer   tokenizer   =   WordPunctTokenizer  ()   tokens   =   tokenizer  .  tokenize  (   'Don't split contractions. E-mails: [email protected]!'  )   print  (  tokens  )   

산출:

['Don' ''' 't' '분할' '축약' '.' 'E' '-' '메일' ':' '안녕하세요' '@' '예제' '.' '컴' '!']

2. TreebankWordTokenizer

구두점과 축약어를 처리하는 언어 분석에 적합합니다.

  • NLP 언어 분석에 일반적으로 사용되는 Mimics Penn Treebank 스타일 토큰화입니다.
  • 특정 영어 문법 구조를 보다 지능적으로 처리합니다.
Python
   from   nltk.tokenize   import   TreebankWordTokenizer   tokenizer   =   TreebankWordTokenizer  ()   tokens   =   tokenizer  .  tokenize  (  'Have a look at NLTK's tokenizers.'  )   print  (  tokens  )   

산출:

['NLTK' '''토크나이저' '를' '갖고' '보세요' '.']

3. 정규식 토크나이저

패턴 기반 분할을 사용자 정의합니다.

  • 정규식 패턴을 기반으로 토큰화합니다.
  • w+는 구두점을 완전히 생략한 단어 및 숫자와 일치합니다.
Python
   from   nltk.tokenize   import   RegexpTokenizer   tokenizer   =   RegexpTokenizer  (  r  'w+'  )   tokens   =   tokenizer  .  tokenize  (   'Custom rule: keep only words & numbers drop punctuation!'  )   print  (  tokens  )   

산출:

['사용자 정의' '규칙' '유지' '만' '단어' '숫자' '삭제' '구두점']

NLTK는 기본 단어 및 문장 분할부터 고급 사용자 정의 패턴까지 다양한 토큰화 요구 사항을 지원하는 Python의 텍스트 토큰화에 유용하고 사용자 친화적인 도구 키트를 제공합니다.

퀴즈 만들기

마음에 드실지도 몰라요