Spec-Zone.ru › TensorFlow 2.4

tf.edit_distance

Просмотреть исходный код на GitHub

Вычисляет расстояние Левенштейна между последовательностями.

Просмотр псевдонимов

Псевдонимы для миграции

Дополнительную информацию см. в руководстве по миграции.

tf.compat.v1.edit_distance

tf.edit_distance(
    hypothesis, truth, normalize=True, name='edit_distance'
)

Данная операция принимает последовательности переменной длины (hypothesis и truth), каждая из которых предоставляется как SparseTensor, и вычисляет расстояние Левенштейна. Можно нормализовать расстояние Левенштейна по длине truth, установив normalize в значение true.

Пример:

Рассмотрим следующие входные данные:

  • hypothesis является tf.SparseTensor формы [2, 1, 1]
  • truth является tf.SparseTensor формы [2, 2, 2]
hypothesis = tf.SparseTensor(
  [[0, 0, 0],
   [1, 0, 0]],
  ["a", "b"],
  (2, 1, 1))
truth = tf.SparseTensor(
  [[0, 1, 0],
   [1, 0, 0],
   [1, 0, 1],
   [1, 1, 0]],
   ["a", "b", "c", "a"],
   (2, 2, 2))
tf.edit_distance(hypothesis, truth, normalize=True)
<tf.Tensor: shape=(2, 2), dtype=float32, numpy=
array([[inf, 1. ],
       [0.5, 1. ]], dtype=float32)>

Операция возвращает плотный тензор формы [2, 2] с расстоянием Левенштейна, нормализованным по длинам truth.

Примечание: Возможна вычисление расстояния Левенштейна между двумя разреженными тензорами с значениями переменной длины. Однако попытка создать их при включённом режиме немедленного выполнения приведет к ValueError.

Для следующих входных данных:

# 'hypothesis' is a tensor of shape `[2, 1]` with variable-length values:
#   (0,0) = ["a"]
#   (1,0) = ["b"]
hypothesis = tf.sparse.SparseTensor(
    [[0, 0, 0],
     [1, 0, 0]],
    ["a", "b"],
    (2, 1, 1))

# 'truth' is a tensor of shape `[2, 2]` with variable-length values:
#   (0,0) = []
#   (0,1) = ["a"]
#   (1,0) = ["b", "c"]
#   (1,1) = ["a"]
truth = tf.sparse.SparseTensor(
    [[0, 1, 0],
     [1, 0, 0],
     [1, 0, 1],
     [1, 1, 0]],
    ["a", "b", "c", "a"],
    (2, 2, 2))

normalize = True

# The output would be a dense Tensor of shape `(2,)`, with edit distances
noramlized by 'truth' lengths.
# output => array([0., 0.5], dtype=float32)
Аргументы
hypothesis A SparseTensor содержащий последовательности гипотез.
truth A SparseTensor содержащий последовательности истинности.
normalize A bool. Если True, нормализует расстояние Левенштейна по длине truth.
name Имя операции (необязательно).
Возвращаемое значение
Плотный Tensor с рангом R - 1, где R — ранг SparseTensor входных данных hypothesis и truth.
Исключения
TypeError Если hypothesis или truth не является SparseTensor.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/edit_distance

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API