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")
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życiuoutput_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 )