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

Unicode文字列を分割し、バイトオフセットをTensorflowとPythonで指定するにはどうすればよいですか?


Unicode文字列は分割でき、バイトオフセットはそれぞれ「unicode_split」メソッドと「unicode_decode_with_offsets」メソッドを使用して指定できます。これらのメソッドは、「tensorflow」モジュールの「string」クラスに存在します。

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

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

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

print("Split unicode strings")
tf.strings.unicode_split(thanks, 'UTF-8').numpy()
codepoints, offsets = tf.strings.unicode_decode_with_offsets(u"🎈🎉🎊", 'UTF-8')
print("Printing byte offset for characters")
for (codepoint, offset) in zip(codepoints.numpy(), offsets.numpy()):
   print("At byte offset {}: codepoint {}".format(offset, codepoint))

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

出力

Split unicode strings
Printing byte offset for characters
At byte offset 0: codepoint 127880
At byte offset 4: codepoint 127881
At byte offset 8: codepoint 127882

説明

  • tf.strings.unicode_split操作は、Unicode文字列を個々の文字のサブ文字列に分割します。
  • 生成される文字テンソルは、tf.strings.unicode_decodeによって元の文字列と整列させる必要があります。
  • この目的のために、各文字が始まるオフセットを知る必要があります。
  • メソッドtf.strings.unicode_decode_with_offsetsは、unicode_decodeメソッドに似ていますが、前者が各文字の開始オフセットを含む2番目のテンソルを返す点が異なります。

  1. Pythonで大文字と数字のランダムな文字列を生成するにはどうすればよいですか?

    random.choice(list_of_choices)を使用して、ランダムな文字を取得できます。次に、これをループしてリストを取得し、最後にこのリストに参加して文字列を取得します。ここでの選択肢のリストは大文字と数字です。例: import string import random def get_random_string(length):     random_list = []     for i in xrange(length):         random_list.append(random.

  2. Pythonで複数の区切り文字を使用して文字列を分割するにはどうすればよいですか?

    re.split(delimiter、str)メソッドを使用して、複数の区切り文字で文字列を分割できます。区切り文字の正規表現と、分割する必要のある文字列が必要です。例: a='Beautiful, is; better*than\nugly' import re print(re.split('; |, |\*|\n',a)) 出力を取得します ['Beautiful', 'is', 'better', 'than', 'ugly']