Python
 Computer >> コンピューター >  >> プログラミング >> Python

Unicode文字列をTensorflowでどのように表現および操作できますか?


Unicode文字列はデフォルトでutf-8でエンコードされています。 Unicode文字列は、Tensorflowモジュールの「constant」メソッドを使用してUTF-8でエンコードされたスカラー値として表すことができます。 Unicode文字列は、Tensorflowモジュールにある「encode」メソッドを使用してUTF-16でエンコードされたスカラーとして表すことができます。

続きを読む:TensorFlowとは何ですか?KerasがTensorFlowと連携してニューラルネットワークを作成する方法は?

自然言語を処理するモデルは、異なる文字セットを持つ異なる言語を処理します。 Unicodeは、ほとんどすべての言語の文字を表すために使用される標準のエンコーディングシステムと見なされています。すべての文字は、0〜0x10FFFFの一意の整数コードポイントを使用してエンコードされます。 Unicode文字列は、0個以上のコード値のシーケンスです。

Pythonを使用してUnicode文字列を表現する方法を理解し、同等のUnicodeを使用してそれらを操作してみましょう。まず、標準の文字列操作に相当するUnicodeを使用して、スクリプト検出に基づいてUnicode文字列をトークンに分割します。

Google Colaboratoryを使用して、以下のコードを実行しています。 Google ColabまたはColaboratoryは、ブラウザー上でPythonコードを実行するのに役立ち、構成が不要で、GPU(グラフィックプロセッシングユニット)に無料でアクセスできます。 ColaboratoryはJupyterNotebookの上に構築されています。

import tensorflow as tf
print("A constant is defined")
tf.constant(u"Thanks 😊")
print("The shape of the tensor is")
tf.constant([u"You are", u"welcome!"]).shape
print("Unicode string represented as UTF-8 encoded scalar")
text_utf8 = tf.constant(u"语言处理")
print(text_utf8)
print("Unicode string represented as UTF-16 encoded scalar")
text_utf16be = tf.constant(u"语言处理".encode("UTF-16-BE"))
print(text_utf16be)
print("Unicode string represented as a vector of Unicode code points")
text_chars = tf.constant([ord(char) for char in u"语言处理"])
print(text_chars)

コードクレジット:https://www.tensorflow.org/tutorials/load_data/unicode

出力

A constant is defined
The shape of the tensor is
Unicode string represented as UTF-8 encoded scalar
tf.Tensor(b'\xe8\xaf\xad\xe8\xa8\x80\xe5\xa4\x84\xe7\x90\x86', shape=(), dtype=string)
Unicode string represented as UTF-16 encoded scalar
tf.Tensor(b'\x8b\xed\x8a\x00Y\x04t\x06', shape=(), dtype=string)
Unicode string represented as a vector of Unicode code points
tf.Tensor([35821 35328 22788 29702], shape=(4,), dtype=int32)

説明

  • TensorFlowtf.stringは基本的なdtypeです。
  • ユーザーはバイト文字列のテンソルを作成できます。
  • Unicode文字列はデフォルトでutf-8でエンコードされています。
  • バイト文字列はアトミック単位として扱われるため、tf.stringテンソルにはさまざまな長さのバイト文字列を保持する機能があります。
  • 文字列の長さはテンソルの寸法に含まれていません。
  • Pythonを使用して文字列を作成する場合、Unicode処理はv2とv3の間で変更されます。 v2では、Unicode文字列は「u」プレフィックスで示されます。
  • v3では、文字列はデフォルトでUnicodeでエンコードされています。
  • TensorFlowでUnicode文字列を表す標準的な方法は2つあります:
  • 文字列スカラー:一連のコードポイントは、既知の文字エンコードでエンコードされます。
  • int32 vector:すべての位置に単一のコードポイントが含まれるメソッド。

  1. TensorFlowを使用して、Pythonを使用してテンソルを作成し、メッセージを表示するにはどうすればよいですか?

    Tensorflowは、Googleが提供する機械学習フレームワークです。これは、Pythonと組み合わせて使用​​されるオープンソースのフレームワークであり、アルゴリズム、深層学習アプリケーションなどを実装します。それは研究および生産目的で使用されます。複雑な数学演算をすばやく実行するのに役立つ最適化手法があります。 これは、NumPyと多次元配列を使用しているためです。これらの多次元配列は「テンソル」とも呼ばれます。フレームワークは、ディープニューラルネットワークの操作をサポートします。これは非常にスケーラブルであり、多くの一般的なデータセットが付属しています。 GPU計算を使用し、リソ

  2. Pythonでstrオブジェクトとintオブジェクトを連結するにはどうすればよいですか?

    文字列を数値と連結するには、str(number)を使用して数値を文字列にキャストする必要があります。たとえば、 >>> a = "string" >>> b = 1 >>> print a + str(b) string1 Python 2では、backtick( ``)を使用して数値を囲み、数値と文字列で同じ結果を得ることができます。 Python3からバッククォートが削除されていることに注意してください。たとえば、 >>> a = "string" >>>