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

Tensorflow 및 Python을 사용하여 유니코드 문자열을 UTF-8로 인코딩된 문자열로 표현하는 방법은 무엇입니까?

<시간/>

유니코드 문자열 세트는 'encode' 메소드를 사용하여 UTF8로 인코딩된 문자열로 표현할 수 있습니다.

더 읽어보기:TensorFlow란 무엇이며 Keras가 TensorFlow와 협력하여 신경망을 만드는 방법은 무엇입니까?

자연어를 처리하는 모델은 다른 문자 집합을 가진 다른 언어를 처리합니다. 유니코드는 거의 모든 언어의 문자를 나타내는 데 사용되는 표준 인코딩 시스템으로 간주됩니다. 모든 문자는 0에서 0x10FFFF 사이의 고유 정수 코드 포인트를 사용하여 인코딩됩니다. 유니코드 문자열은 0개 이상의 코드 값 시퀀스입니다.

파이썬을 사용하여 유니코드 문자열을 표현하는 방법과 이에 상응하는 유니코드를 사용하여 조작하는 방법을 이해합시다. 먼저, 표준 문자열 연산에 해당하는 유니코드를 사용하여 스크립트 감지를 기반으로 유니코드 문자열을 토큰으로 분리합니다.

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

print("A set of Unicode strings which is represented as a UTF8-encoded string")
batch_utf8 = [s.encode('UTF-8') for s in[u'hÃllo',   u'What is the weather tomorrow',u'Göödnight', u'😊']]
batch_chars_ragged = tf.strings.unicode_decode(batch_utf8,
input_encoding='UTF-8')
for sentence_chars in batch_chars_ragged.to_list():
   print(sentence_chars)
print("Dense tensor with padding are printed")
batch_chars_padded = batch_chars_ragged.to_tensor(default_value=-1)
print(batch_chars_padded.numpy())
print("Converting to sparse matrix")
batch_chars_sparse = batch_chars_ragged.to_sparse()

코드 크레딧:https://www.tensorflow.org/tutorials/load_data/unicode

출력

A set of Unicode strings which is represented as a UTF8-encoded string
[104, 195, 108, 108, 111]
[87, 104, 97, 116, 32, 105, 115, 32, 116, 104, 101, 32, 119, 101, 97, 116, 104, 101, 114, 32, 116, 111, 109, 111, 114, 114, 111, 119]
[71, 246, 246, 100, 110, 105, 103, 104, 116]
[128522]
Dense tensor with padding are printed
[[ 104      195      108      108      111       -1       -1       -1       -1       -1
   -1       -1       -1       -1       -1       -1       -1       -1       -1       -1
   -1       -1       -1       -1       -1       -1       -1       -1]
[87      104       97      116       32      105      115       32      116      104
 101       32      119      101       97      116      104      101      114       32
 116      111      109      111      114      114      111      119]
[71      246      246      100      110      105      103      104      116       -1
   -1       -1       -1       -1       -1       -1       -1       -1       -1       -1
   -1       -1       -1       -1       -1       -1       -1       -1]
[128522       -1       -1       -1       -1       -1       -1       -1       -1       -1
   -1       -1       -1       -1       -1       -1       -1       -1       -1       -1
   -1       -1       -1       -1       -1       -1       -1       -1]]
Converting to sparse matrix

설명

  • 여러 문자열을 디코딩할 때 모든 문자열의 문자 수가 같지 않을 수 있습니다.
  • 결과는 tf.RaggedTensor가 되며, 여기서 가장 안쪽 차원의 길이가 달라지고 이 변형은 모든 문자열의 문자 수에 따라 달라집니다.
  • 이 tf.RaggedTensor는 직접 사용할 수 있으며, tf.RaggedTensor.to_tensor 메서드를 사용하여 패딩이 있는 조밀한 tf.Tensor로 변환하거나 tf.RaggedTensor.to_sparse를 사용하여 tf.SparseTensor로 변환할 수 있습니다.