przepływ tensorowy:: ops:: Transkodowanie Unicode

#include <string_ops.h>

Transkoduj tekst wejściowy z kodowania źródłowego do kodowania docelowego.

Streszczenie

Dane wejściowe to tensor strunowy o dowolnym kształcie. Dane wyjściowe to tensor ciągów o tym samym kształcie zawierający transkodowane ciągi. Ciągi wyjściowe są zawsze prawidłowym kodem Unicode. Jeśli dane wejściowe zawierają nieprawidłowe pozycje kodowania, atrybut errors określa zasady postępowania z nimi. Jeśli używana jest domyślna polityka obsługi błędów, nieprawidłowe formatowanie zostanie zastąpione w danych wyjściowych przez replacement_char . Jeśli zasada błędów ma ignore , wszelkie nieprawidłowe pozycje kodowania na wejściu są pomijane i nie są uwzględniane w wynikach. Jeśli jest ustawiony na strict , każde nieprawidłowe formatowanie spowoduje błąd InvalidArgument.

Tej operacji można użyć z output_encoding = input_encoding aby wymusić prawidłowe formatowanie danych wejściowych, nawet jeśli są już w żądanym kodowaniu.

Jeśli dane wejściowe są poprzedzone znacznikiem kolejności bajtów niezbędnym do określenia kodowania (np. jeśli kodowanie to UTF-16, a BOM wskazuje big-endian), wówczas ten BOM zostanie wykorzystany, a nie wyemitowany na wyjściu. Jeżeli kodowanie wejściowe jest oznaczone jawną endiannością (np. UTF-16-BE), wówczas BOM jest interpretowany jako spacja nierozdzielająca i jest zachowywany na wyjściu (w tym zawsze dla UTF-8).

Efektem końcowym jest to, że jeśli dane wejściowe są oznaczone jako wyraźna endianowość, transkodowanie jest wierne wszystkim punktom kodowym w źródle. Jeśli nie jest ona oznaczona jawną końcówką, BOM nie jest uważany za część samego ciągu, ale za metadane, w związku z czym nie jest zachowywany w danych wyjściowych.

Przykłady:

tf.strings.unicode_transcode(["Witam", "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=obiekt)

Argumenty:

  • zakres: Obiekt Scope
  • input: Tekst do przetworzenia. Może mieć dowolny kształt.
  • input_encoding: Kodowanie tekstu ciągów wejściowych. Jest to dowolne z kodowań obsługiwanych przez konwertery algorytmiczne ICU ucnv. Przykłady: "UTF-16", "US ASCII", "UTF-8" .
  • Output_encoding: Kodowanie Unicode używane w danych wyjściowych. Musi to być jeden z "UTF-8", "UTF-16-BE", "UTF-32-BE" . Kodowanie wielobajtowe będzie typu big-endian.

Opcjonalne atrybuty (patrz Attrs ):

  • błędy: Zasady obsługi błędów w przypadku znalezienia nieprawidłowego formatowania na wejściu. Wartość „strict” spowoduje, że operacja wygeneruje błąd InvalidArgument w przypadku nieprawidłowego formatowania danych wejściowych. Wartość „replace” (domyślna) spowoduje, że operacja zastąpi wszelkie nieprawidłowe formatowanie danych wejściowych punktem kodowym replacement_char . Wartość „ignore” spowoduje, że operacja pominie wszelkie nieprawidłowe formatowanie na wejściu i nie wygeneruje odpowiedniego znaku wyjściowego.
  • zamień_char: Punkt kodowy znaku zastępczego, który ma zostać użyty zamiast nieprawidłowego formatowania danych wejściowych, gdy errors='replace' . Można zastosować dowolny ważny punkt kodowy Unicode. Wartość domyślna to domyślny znak zastępczy Unicode to 0xFFFD lub U+65533.)

Należy zauważyć, że w przypadku UTF-8 przekazanie znaku zastępczego wyrażonego w 1 bajcie, takiego jak „”, zachowa wyrównanie łańcucha do źródła, ponieważ nieprawidłowe bajty zostaną zastąpione jednobajtowym zastąpieniem. W przypadku UTF-16-BE i UTF-16-LE dowolny 1 lub 2-bajtowy znak zastępujący zachowa wyrównanie bajtów do źródła.

  • zamień_kontrolne_znaki: Czy zamienić znaki kontrolne C0 (00-1F) na replacement_char . Wartość domyślna to fałsz.

Zwroty:

  • Output : Tensor ciągu zawierający tekst Unicode zakodowany przy użyciu output_encoding .

Konstruktory i destruktory

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)

Atrybuty publiczne

operation
output

Funkcje publiczne

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

Publiczne funkcje statyczne

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

Struktury

tensorflow:: ops:: UnicodeTranscode:: Attrs

Opcjonalne moduły ustawiające atrybuty dla UnicodeTranscode .

Atrybuty publiczne

działanie

Operation operation

wyjście

::tensorflow::Output output

Funkcje publiczne

Transkodowanie Unicode

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

Transkodowanie Unicode

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

węzeł

::tensorflow::Node * node() const 

operator::tensorflow::Wejście

 operator::tensorflow::Input() const 

operator::tensorflow::Wyjście

 operator::tensorflow::Output() const 

Publiczne funkcje statyczne

Błędy

Attrs Errors(
  StringPiece x
)

Zastąp znaki kontrolne

Attrs ReplaceControlCharacters(
  bool x
)

ZastąpienieChar

Attrs ReplacementChar(
  int64 x
)