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

Tensorflow를 사용하여 비정형 텐서의 단어 코드 포인트를 다시 문장으로 분할할 수 있습니까?

<시간/>

비정형 텐서의 단어 코드 포인트는 다음과 같은 방법으로 분할할 수 있습니다. 분할은 텍스트를 단어와 같은 단위로 분할하는 작업을 나타냅니다. 공백 문자를 사용하여 단어를 구분하는 경우에 사용되지만 중국어, 일본어와 같은 일부 언어에서는 공백을 사용하지 않습니다. 독일어와 같은 일부 언어에는 의미를 분석하기 위해 분할해야 하는 긴 합성어가 포함되어 있습니다.

단어의 코드 포인트는 다시 문장으로 분할됩니다. 다음 단계는 단어의 문자에 대한 코드 포인트가 문장에 존재하는지 확인하는 것입니다. 존재하는 경우 비정형 텐서가 생성되고 문장이 표준 인코딩으로 다시 인코딩됩니다.

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

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

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

print("Segment the word code points back to sentences")
print("Check if code point for a character in a word is present in the sentence")
sentence_word_char_codepoint = tf.RaggedTensor.from_row_lengths(
   values=word_char_codepoint,
   row_lengths=sentence_num_words)
print(sentence_word_char_codepoint)
print("Encoding it back to UTF-8")
tf.strings.unicode_encode(sentence_word_char_codepoint, 'UTF-8').to_list()

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

출력

Segment the word code points back to sentences
Check if code point for a character in a word is present in the sentence
<tf.RaggedTensor [[[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46]], [[19990, 30028], [12371, 12435, 12395, 12385, 12399]]]>
Encoding it back to UTF-8
[[b'Hello', b', ', b'there', b'.'],
[b'\xe4\xb8\x96\xe7\x95\x8c',
   b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf']]

설명

  • 코드 포인트는 문장으로 분할됩니다.
  • 문자에 대한 코드 포인트가 문장에 존재하는지 여부를 판별합니다.
  • 디코딩된 데이터는 UTF-8 인코딩으로 다시 인코딩됩니다.