テンソルフロー::作戦:: Unicodeトランスコード

#include <string_ops.h>

入力テキストをソース エンコーディングから宛先エンコーディングにトランスコードします。

まとめ

入力は、任意の形状の文字列テンソルです。出力は、トランスコードされた文字列を含む同じ形状の文字列テンソルです。出力文字列は常に有効な Unicode です。入力に無効なエンコード位置が含まれている場合、 errors属性によってそれらの処理方法のポリシーが設定されます。デフォルトのエラー処理ポリシーが使用されている場合、出力では無効な書式設定がreplacement_charによって置き換えられます。エラー ポリシーがignore場合、入力内の無効なエンコード位置はスキップされ、出力には含まれません。 strictに設定すると、無効な書式設定があると InvalidArgument エラーが発生します。

この操作を、 output_encoding = input_encodingとともに使用すると、入力がすでに目的のエンコーディングになっている場合でも、入力の正しいフォーマットを適用できます。

エンコーディングを決定するために必要なバイト オーダー マークが入力にプレフィックスとして付けられている場合 (たとえば、エンコーディングが UTF-16 で BOM がビッグ エンディアンを示している場合)、その BOM は消費され、出力には出力されません。入力エンコーディングが明示的なエンディアン (UTF-16-BE など) でマークされている場合、BOM は非改行スペースとして解釈され、出力に保存されます (UTF-8 の場合も含む)。

最終結果として、入力が明示的なエンディアンとしてマークされている場合、トランスコーディングはソース内のすべてのコードポイントに忠実になります。明示的なエンディアンでマークされていない場合、BOM は文字列自体の一部ではなくメタデータとみなされ、出力には保存されません。

例:

tf.strings.unicode_transcode(["Hello", "TensorFlow", "2.x"], "UTF-8", "UTF-16-BE") tf.strings.unicode_transcode(["A", "B", "C"], "US ASCII", "UTF-8").numpy() array([b'A', b'B', b' C']、dtype=オブジェクト)

引数:

  • スコープ:スコープオブジェクト
  • input: 処理されるテキスト。任意の形状にすることができます。
  • input_encoding: 入力文字列のテキスト エンコーディング。これは、ICU ucnv アルゴリズム コンバーターでサポートされているエンコーディングのいずれかです。例: "UTF-16", "US ASCII", "UTF-8"
  • Output_encoding: 出力で使用する Unicode エンコーディング。 "UTF-8", "UTF-16-BE", "UTF-32-BE"のいずれかである必要があります。マルチバイトエンコーディングはビッグエンディアンになります。

オプションの属性 ( Attrsを参照):

  • エラー: 入力に無効な形式が見つかった場合のエラー処理ポリシー。 'strict' の値を指定すると、無効な入力形式に対して操作で InvalidArgument エラーが生成されます。値「replace」(デフォルト) を指定すると、入力内の無効な書式設定がreplacement_charコードポイントで置き換えられます。値が「ignore」の場合、操作では入力内の無効な書式設定がスキップされ、対応する出力文字は生成されません。
  • replace_char: errors='replace'の場合、入力内の無効な書式設定の代わりに使用される置換文字コードポイント。任意の有効な Unicode コードポイントを使用できます。デフォルト値は、デフォルトの Unicode 置換文字 0xFFFD または U+65533 です。)

UTF-8 の場合、「 」などの 1 バイトで表現可能な置換文字を渡すと、無効なバイトが 1 バイトの置換文字に置き換えられるため、ソースとの文字列の位置合わせが維持されることに注意してください。 UTF-16-BE および UTF-16-LE の場合、1 バイトまたは 2 バイトの置換文字はソースへのバイト アラインメントを保持します。

  • replace_control_characters: C0 制御文字 (00-1F) をreplacement_charに置き換えるかどうか。デフォルトは false です。

戻り値:

  • Output : output_encodingを使用してエンコードされた Unicode テキストを含む文字列テンソル。

コンストラクターとデストラクター

UnicodeTranscode (const :: tensorflow::Scope & scope, :: tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding)
UnicodeTranscode (const :: tensorflow::Scope & scope, :: tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding, const UnicodeTranscode::Attrs & attrs)

パブリック属性

operation
output

公共機能

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

パブリック静的関数

Errors (StringPiece x)
ReplaceControlCharacters (bool x)
ReplacementChar (int64 x)

構造体

tensorflow:: ops:: UnicodeTranscode:: Attrs

UnicodeTranscodeのオプションの属性セッター。

パブリック属性

手術

Operation operation

出力

::tensorflow::Output output

公共機能

Unicodeトランスコード

 UnicodeTranscode(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  StringPiece input_encoding,
  StringPiece output_encoding
)

Unicodeトランスコード

 UnicodeTranscode(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  StringPiece input_encoding,
  StringPiece output_encoding,
  const UnicodeTranscode::Attrs & attrs
)

ノード

::tensorflow::Node * node() const 

演算子::tensorflow::入力

 operator::tensorflow::Input() const 

演算子::tensorflow::出力

 operator::tensorflow::Output() const 

パブリック静的関数

エラー

Attrs Errors(
  StringPiece x
)

制御文字の置換

Attrs ReplaceControlCharacters(
  bool x
)

置換文字

Attrs ReplacementChar(
  int64 x
)