tf.edit_distance Levenshtein距离

import tensorflow as tf 
 # '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))
tf.sparse.to_dense(
    hypothesis , default_value=None, validate_indices=True, name=None
)

# '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))


tf.sparse.to_dense(
   truth , default_value=None, validate_indices=True, name=None
)
normalize = True
 

tf.edit_distance(
    hypothesis, truth, normalize=True, name='edit_distance'
)
<tf.Tensor: shape=(2, 2), dtype=float32, numpy=
array([[inf, 1. ],
       [0.5, 1. ]], dtype=float32)>
posted @ 2022-08-19 22:51  luoganttcc  阅读(2)  评论(0)    收藏  举报