Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tensorflow 텍스트를 사용하여 Python에서 UTF-8 문자열을 분할하는 방법은 무엇입니까?

<시간/>

UTF-8 문자열은 Tensorflow 텍스트를 사용하여 분할할 수 있습니다. 이것은 'UnicodeScriptTokenizer'의 도움으로 수행할 수 있습니다. 'UnicodeScriptTokenizer'는 생성된 토크나이저이며, 이후 'UnicodeScriptTokenizer'에 있는 'tokenize' 메소드가 문자열에 호출됩니다.

자세히 알아보기: TensorFlow란 무엇이며 Keras가 TensorFlow와 함께 신경망을 생성하는 방법은 무엇입니까?

모든 레이어에 정확히 하나의 입력 텐서와 하나의 출력 텐서가 있는 일반 레이어 스택으로 작업하는 데 사용되는 순차 모델을 구축하는 데 도움이 되는 Keras Sequential API를 사용할 것입니다.

하나 이상의 레이어를 포함하는 신경망을 컨볼루션 레이어라고 합니다. Convolutional Neural Network를 사용하여 학습 모델을 구축할 수 있습니다.

TensorFlow Text에는 TensorFlow 2.0과 함께 사용할 수 있는 텍스트 관련 클래스 및 작업 모음이 포함되어 있습니다. TensorFlow Text는 시퀀스 모델링을 전처리하는 데 사용할 수 있습니다.

Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.

토큰화는 문자열을 토큰으로 분해하는 방법입니다. 이러한 토큰은 단어, 숫자 또는 구두점일 수 있습니다.

중요한 인터페이스에는 각각 단일 메서드 tokenize 및 tokenize_with_offsets가 있는 Tokenizer 및 TokenizerWithOffsets가 포함됩니다. 각각 TokenizerWithOffsets(Tokenizer 클래스 확장)를 구현하는 여러 토크나이저가 있습니다. 여기에는 바이트 오프셋을 원래 문자열로 가져오는 옵션이 포함됩니다. 이렇게 하면 토큰이 생성된 원본 문자열의 바이트를 알 수 있습니다.

모든 토크나이저는 원래 개별 문자열에 매핑된 토큰의 가장 안쪽 차원과 함께 RaggedTensor를 반환합니다. 결과 모양의 순위가 1 증가합니다.

print("Unicode script tokenizer is being called")
tokenizer = text.UnicodeScriptTokenizer()
tokens = tokenizer.tokenize(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("The tokenized data is converted to a list")
print(tokens.to_list())

코드 크레딧 -https://www.tensorflow.org/tutorials/tensorflow_text/intro

출력

Unicode script tokenizer is being called
The tokenized data is converted to a list
[[b'everything', b'not', b'saved', b'will', b'be', b'lost', b'.'], [b'Sad', b'\xe2\x98\xb9']]

설명

  • 토크나이저는 유니코드 스크립트 경계를 기반으로 UTF-8 문자열을 분할합니다.

  • 스크립트 코드는 ICU(International Components for Unicode) UScriptCode 값에 해당합니다.

  • 언어 텍스트에서 구두점(USCRIPT_COMMON)을 분리하고 서로 다른 언어 텍스트에서 구두점을 분리한다는 차이점이 있는 WhitespaceTokenizer와 유사합니다.