جریان تنسور:: عملیات:: Unicode Transcode

#include <string_ops.h>

متن ورودی را از کدگذاری منبع به رمزگذاری مقصد تبدیل کنید.

خلاصه

ورودی یک تانسور رشته ای از هر شکلی است. خروجی یک تانسور رشته ای به همان شکل است که رشته های رمزگذاری شده را در خود دارد. رشته های خروجی همیشه یونیکد معتبر هستند. اگر ورودی حاوی موقعیت های رمزگذاری نامعتبر باشد، ویژگی errors خط مشی نحوه برخورد با آنها را تعیین می کند. اگر از خط‌مشی پیش‌فرض مدیریت خطا استفاده شود، قالب‌بندی نامعتبر در خروجی با replacement_char جایگزین می‌شود. اگر خط مشی خطاها ignore گرفته شود، هر موقعیت رمزگذاری نامعتبر در ورودی نادیده گرفته می شود و در خروجی گنجانده نمی شود. اگر روی strict تنظیم شود، هر قالب بندی نامعتبر منجر به خطای InvalidArgument می شود.

این عملیات را می توان با output_encoding = input_encoding برای اعمال قالب بندی صحیح برای ورودی ها حتی اگر آنها در حال حاضر در رمزگذاری مورد نظر هستند استفاده کرد.

اگر ورودی با علامت ترتیب بایتی که برای تعیین رمزگذاری لازم است پیشوند شود (مثلاً اگر رمزگذاری UTF-16 باشد و BOM نشان دهنده big-endian باشد)، آن BOM مصرف می شود و به خروجی گسیل نمی شود. اگر رمزگذاری ورودی با یک endianness صریح مشخص شده باشد (مثلا UTF-16-BE)، آنگاه BOM به عنوان یک فضای بدون شکست تفسیر می شود و در خروجی حفظ می شود (از جمله همیشه برای UTF-8).

نتیجه نهایی این است که اگر ورودی به‌عنوان یک endianness صریح علامت‌گذاری شود، رمزگذاری به همه کدهای منبع وفادار است. اگر با endianness صریح مشخص نشده باشد، 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() آرایه([b'A', b'B', b' C']، dtype=object)

استدلال ها:

  • scope: یک شی Scope
  • ورودی: متنی که باید پردازش شود. می تواند هر شکلی داشته باشد.
  • input_encoding: رمزگذاری متن رشته های ورودی. این هر یک از رمزگذاری های پشتیبانی شده توسط مبدل های الگوریتمی ICU ucnv است. مثال‌ها: "UTF-16", "US ASCII", "UTF-8" .
  • output_encoding: رمزگذاری یونیکد برای استفاده در خروجی. باید یکی از "UTF-8", "UTF-16-BE", "UTF-32-BE" باشد. رمزگذاری های چند بایتی بزرگ اندیان خواهند بود.

ویژگی های اختیاری (به Attrs مراجعه کنید):

  • خطاها: خط مشی رسیدگی به خطا زمانی که قالب بندی نامعتبر در ورودی یافت می شود. مقدار 'strict' باعث می شود که عملیات خطای InvalidArgument در هر قالب بندی ورودی نامعتبر ایجاد کند. مقدار «replace» (پیش‌فرض) باعث می‌شود که عملیات هر قالب‌بندی نامعتبر در ورودی را با نقطه کد replacement_char جایگزین کند. مقدار "نادیده گرفتن" باعث می شود عملیات از هر قالب بندی نامعتبر در ورودی صرف نظر کند و هیچ کاراکتر خروجی مربوطه تولید نکند.
  • placement_char: نقطه کد کاراکتر جایگزینی که باید به جای هر قالب بندی نامعتبر در ورودی در هنگام errors='replace' استفاده شود. ممکن است از هر کد یونیکد معتبر استفاده شود. مقدار پیش‌فرض این است که کاراکتر جایگزین یونیکد پیش‌فرض 0xFFFD یا U+65533 است.)

توجه داشته باشید که برای UTF-8، ارسال یک کاراکتر جایگزین قابل بیان در 1 بایت، مانند " "، تراز رشته را با منبع حفظ می کند زیرا بایت های نامعتبر با یک جایگزین 1 بایتی جایگزین می شوند. برای UTF-16-BE و UTF-16-LE، هر نویسه جایگزین 1 یا 2 بایت، تراز بایت را با منبع حفظ می کند.

  • replace_control_characters: آیا باید نویسه های کنترلی C0 (00-1F) را با replacement_char جایگزین کرد. پیش فرض نادرست است.

برمی گرداند:

  • Output : یک تانسور رشته ای حاوی متن یونیکد که با استفاده از output_encoding کدگذاری شده است.

سازندگان و تخریب کنندگان

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 Transcode

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

Unicode Transcode

 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
)

ReplaceControl Characters

Attrs ReplaceControlCharacters(
  bool x
)

Replacement Char

Attrs ReplacementChar(
  int64 x
)