tf.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.
Примечание: Можно вычислить расстояние редактирования между двумя разреженными тензорами со значениями переменной длины. Однако попытка создать их при включенном eager-выполнении приведет к 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
normalized by 'truth' lengths.
# output => array([0., 0.5], dtype=float32)
| Аргументы | |
|---|---|
hypothesis | SparseTensor, содержащий последовательности гипотез. |
truth | SparseTensor, содержащий истинные последовательности. |
normalize | bool. Если True, нормализует расстояние Левенштейна по длине truth. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Плотный Tensor с рангом R - 1, где R — ранг входных данных SparseTensor hypothesis и truth. |
| Исключения | |
|---|---|
TypeError | Если hypothesis или truth не является SparseTensor. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/edit_distance