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()는 문장을 별도의 토큰으로 단어와 문장 부호로 분할합니다.
- 수축 구두점 숫자 등을 처리합니다.
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가 됨).
- 이메일을 이메일로 분할합니다.
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 스타일 토큰화입니다.
- 특정 영어 문법 구조를 보다 지능적으로 처리합니다.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
산출:
['NLTK' '''토크나이저' '를' '갖고' '보세요' '.']
3. 정규식 토크나이저
패턴 기반 분할을 사용자 정의합니다.
- 정규식 패턴을 기반으로 토큰화합니다.
- w+는 구두점을 완전히 생략한 단어 및 숫자와 일치합니다.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
산출:
['사용자 정의' '규칙' '유지' '만' '단어' '숫자' '삭제' '구두점']
NLTK는 기본 단어 및 문장 분할부터 고급 사용자 정의 패턴까지 다양한 토큰화 요구 사항을 지원하는 Python의 텍스트 토큰화에 유용하고 사용자 친화적인 도구 키트를 제공합니다.
퀴즈 만들기