728x90
NLTK (2) - 텍스트 문장으로 분해하기 Tokenizing text into sentences
설치가 제대로 되었는지 간단한 코드로 확인해보자.
para = "Hello World. It's good to see you. Thanks for buying this book."
from nltk.tokenize import sent_tokenize
sent_tokenize(para)
sentence tokenization 함수를 호출해서 para를 인수로 사용한다. sent_tokenize 함수는 nltk.tokenize.punkt 모듈의 PunktSentenceTokenizer 인스턴스를 사용해서 문장의 시작과 끝을 구분한다. 이미 다수의 유럽 언어에서 검증이 되었다.
sent_tokenize() 에 사용된 인스턴스는 사실 pickle 파일의 요청에 의해 로딩된다. 그러므로 다수의 문장을 분해할려면 PunktSentenceTokenizer 클래스를 한 번 로딩해서 tokenzie() 메소드를 호출하는게 더 효율적이다.
para = "Hello World. It's good to see you. Thanks for buying this book."
import nltk.data
tokenizer = nltk.data.load('tokenizers/punkt/PY3/english.pickle')
tokenizer.tokenize(para)
spanish.pickle 파일을 통해 스페인어를 분해해보자.
spanish_para = "Hola amigo. Estoy bien."
spanish_tokenizer = nltk.data.load('tokenizers/punkt/PY3/spanish.pickle')
spanish_tokenizer.tokenize(spanish_para)
['Hola amigo.', 'Estoy bien.']
spanish_para = "Entre ellas, destaca el crecimiento experimentado en la demanda de formación en áreas relacionadas con la digitalización y las tecnologías de la comunicación. En cuanto al número de participantes, mantienen el liderazgo los cursos sobre asuntos relacionados con el comercio y el marketing. Además, la modalidad de formación online será la más utilizada para el acceso a los distintos certificados de profesionalidad y a las especialidades formativas que forman el catálogo de cursos ofertados.Para la valoración de los planes presentados, se han considerado colectivos prioritarios en el acceso a dichos cursos los trabajadores temporales y a tiempo parcial; las mujeres trabajadoras; los trabajadores mayores de 45 años, y los desempleados de larga duración, dentro de su porcentaje de reserva. Por su parte, los trabajadores autónomos y los de la Economía Social dispondrán de acciones formativas valoradas en 6 y 4,5 millones de euros, respectivamente."
spanish_tokenizer = nltk.data.load('tokenizers/punkt/PY3/spanish.pickle')
spanish_tokenizer.tokenize(spanish_para)
이외에 사용가능한 분해기는 다음에서 확인할 수 있다.
1 2 | root@localhost:~# find / -name 'tokenizers' -type d /root/nltk_data/tokenizers | cs |
728x90
'프로그래밍 Programming' 카테고리의 다른 글
NLTK (3) - 문장을 단어 단위로 분해하기 Tokenizing sentences into words (0) | 2017.09.25 |
---|---|
ImportError: cannot import name 'PunktWordTokenizer' (0) | 2017.09.25 |
NLTK (1) - NLTK 및 NLTK 데이터 설치 (0) | 2017.09.25 |
주피터 노트북 파이썬3 추가하기 How do I add python3 kernel to jupyter (IPython) (0) | 2017.09.23 |
Getting Started with CLISP (13) - 조건문 The Conditionals: if and Beyond (0) | 2017.09.19 |