TensorFlow를 사용한 텍스트 및 자연어 처리

텍스트 데이터로 모델을 학습시키기 전에 일반적으로 텍스트를 처리(또는 전처리)해야 합니다. 많은 경우, 텍스트를 모델에 제공하기 전에 토큰화하고 벡터화해야 하며, 경우에 따라 정규화 및 특징 선택과 같은 추가적인 전처리 단계가 필요합니다.

텍스트가 적합한 형식으로 처리되면 텍스트 분류, 텍스트 생성, 요약, 번역과 같은 자연어 처리(NLP) 워크플로에 사용할 수 있습니다.

TensorFlow는 텍스트 및 자연어 처리를 위한 두 가지 라이브러리를 제공합니다. KerasNLP( GitHub )와 TensorFlow Text( GitHub )입니다.

KerasNLP는 최신 트랜스포머 기반 모델과 저수준 토큰화 유틸리티를 모두 포함하는 고수준 NLP 모델링 라이브러리입니다. 대부분의 NLP 사용 사례에 권장되는 솔루션입니다. TensorFlow Text를 기반으로 하는 KerasNLP는 저수준 텍스트 처리 작업을 사용 편의성을 고려하여 설계된 API로 추상화합니다. 하지만 Keras API를 사용하지 않거나 저수준 텍스트 처리 작업에 액세스해야 하는 경우 TensorFlow Text를 직접 사용할 수 있습니다.

케라스NLP

TensorFlow에서 텍스트 처리를 시작하는 가장 쉬운 방법은 KerasNLP를 사용하는 것입니다. KerasNLP는 최첨단 사전 설정 가중치와 아키텍처를 갖춘 모듈식 구성 요소로 구축된 워크플로를 지원하는 자연어 처리 라이브러리입니다. KerasNLP 구성 요소는 기본 제공 구성으로 사용할 수 있습니다. 더 많은 제어가 필요한 경우 구성 요소를 쉽게 사용자 지정할 수 있습니다. KerasNLP는 모든 워크플로에 대해 그래프 내 연산을 제공하므로 TensorFlow 생태계를 사용하여 손쉽게 프로덕션화할 수 있습니다.

KerasNLP는 BERTFNet 과 같은 널리 사용되는 모델 아키텍처 의 엔드 투 엔드 구현을 포함합니다. KerasNLP 모델, 레이어 및 토크나이저를 사용하여 기계 번역 , 텍스트 생성 , 텍스트 분류 , 변환기 모델 학습 을 포함한 다양한 최첨단 NLP 워크플로를 완료할 수 있습니다.

KerasNLP는 핵심 Keras API의 확장이며, 모든 상위 KerasNLP 모듈은 Layer 또는 Model 입니다. Keras에 익숙하다면 KerasNLP의 대부분을 이미 이해하고 있을 것입니다.

텐서플로우 텍스트

KerasNLP는 레이어 또는 모델 형태로 제공되는 고급 텍스트 처리 모듈을 제공합니다. 저수준 도구가 필요한 경우 TensorFlow Text를 사용할 수 있습니다. TensorFlow Text는 원시 텍스트 문자열 및 문서 작업에 도움이 되는 연산과 라이브러리를 제공합니다. TensorFlow Text는 텍스트 기반 모델에 일반적으로 필요한 전처리를 수행할 수 있으며, 시퀀스 모델링에 유용한 다른 기능도 포함합니다.

TensorFlow Text를 사용하면 다음을 수행할 수 있습니다.

  • 문자열을 공백으로 나누고, 단어와 구두점을 구분하고, 토큰과 함께 바이트 오프셋을 반환하는 기능이 풍부한 토크나이저를 적용하여 문자열을 소스 텍스트에서 어디에서 찾을 수 있는지 알 수 있습니다.
  • 토큰이 지정된 문자열 패턴과 일치하는지 확인합니다. 대문자, 구두점, 숫자 데이터 및 기타 토큰 기능을 확인할 수 있습니다.
  • 토큰을 결합하여 n-gram을 만듭니다.
  • TensorFlow 그래프 내에서 텍스트를 처리하여 학습 중 토큰화가 추론 시 토큰화와 일치하도록 합니다.

어디서부터 시작해야 할까

다음 리소스는 TensorFlow 텍스트 처리를 시작하는 데 도움이 됩니다.