在字典Tensorflow中查找数组内的列表

2024-10-01 07:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个张量,我想查找并输出每个单词的int

我怎样才能在上面滚动并为每个单词输入一个值

table =tf.lookup.StaticHashTable(tf.lookup.TextFileInitializer(vocab_filename, tf.string, 0, tf.int64, 1, delimiter="!"),7) 
out=table.lookup(data[0])
print(out)

<tf.Tensor: shape=(231637,), dtype=string, numpy=
array([b"['honey', 'apple', 'tree', 'butter', 'olive oil', 'salt']",

Tags: datastringtftablefilenameoutlookup单词
1条回答
网友
1楼 · 发布于 2024-10-01 07:45:49

您可以使用StaticVocabularyTable来实现相同的功能。下面是一个例子

vocab = ["<1H OCEAN", "INLAND", "NEAR OCEAN", "NEAR BAY", "ISLAND"]
indices = tf.range(len(vocab), dtype=tf.int64)
table_init = tf.lookup.KeyValueTensorInitializer(vocab, indices)
num_oov_buckets = 20
table = tf.lookup.StaticVocabularyTable(table_init, num_oov_buckets) 

结果:

out = table.lookup(tf.constant(["NEAR OCEAN"]))
print(out)
tf.Tensor([2], shape=(1,), dtype=int64)

如果要从文本文件创建Vocabulary ListIndex values,可以按照下面的示例操作

num_oov_buckets = 3
input_tensor = tf.constant(["emerson", "lake", "palmer", "king", "crimnson"])
table = tf.lookup.StaticVocabularyTable(
    tf.lookup.TextFileInitializer(
        filename,
        key_dtype=tf.string, key_index=tf.lookup.TextFileIndex.WHOLE_LINE,
        value_dtype=tf.int64, value_index=tf.lookup.TextFileIndex.LINE_NUMBER,
        delimiter="\t"),
    num_oov_buckets)
out = table.lookup(input_tensor) 

您可以按照document获取详细说明

相关问题 更多 >