tf.contrib.lookup.index_table_from_file
Возвращает таблицу поиска, которая преобразует тензор строк в идентификаторы int64.
tf.contrib.lookup.index_table_from_file(
vocabulary_file=None, num_oov_buckets=0, vocab_size=None, default_value=-1,
hasher_spec=tf.contrib.lookup.FastHashSpec, key_dtype=tf.dtypes.string,
name=None, key_column_index=TextFileIndex.WHOLE_LINE,
value_column_index=TextFileIndex.LINE_NUMBER, delimiter='\t'
)
Эта операция строит таблицу поиска для преобразования тензора строк в идентификаторы int64. Сопоставление может быть инициализировано из файла словаря, указанного в vocabulary_file, где вся строка является ключом, а нулевой индекс строки — идентификатором.
Любой поиск вне словаря вернёт идентификатор корзины, основанный на его хэше, если num_oov_buckets больше нуля. В противном случае ему назначается default_value. Диапазон идентификаторов корзины — [vocabulary size, vocabulary size + num_oov_buckets - 1].
Базовая таблица должна быть инициализирована, вызвав session.run(tf.compat.v1.tables_initializer()) или session.run(table.init()) один раз.
Чтобы указать файлы словаря с несколькими столбцами, используйте key_column_index и value_column_index и разделитель.
- TextFileIndex.LINE_NUMBER означает использование номера строки, начиная с нуля, ожидается тип данных int64.
- TextFileIndex.WHOLE_LINE означает использование всего содержимого строки, ожидается тип данных string.
- Значение >=0 означает использование индекса (начиная с нуля) разделённой строки на основе
delimiter.
Примеры использования:
Если у нас есть файл словаря "test.txt" со следующим содержимым:
emerson lake palmer
features = tf.constant(["emerson", "lake", "and", "palmer"])
table = tf.lookup.index_table_from_file(
vocabulary_file="test.txt", num_oov_buckets=1)
ids = table.lookup(features)
...
tf.compat.v1.tables_initializer().run()
ids.eval() ==> [0, 1, 3, 2] # where 3 is the out-of-vocabulary bucket
| Аргументы | |
|---|---|
vocabulary_file | Имя файла словаря, может быть константой-скаляром Tensor. |
num_oov_buckets | Количество корзин для слов, отсутствующих в словаре. |
vocab_size | Количество элементов в словаре, если известно. |
default_value | Значение, используемое для слов, отсутствующих в словаре. По умолчанию -1. |
hasher_spec | Функцию хэширования для распределения корзин слов, отсутствующих в словаре. |
key_dtype | Тип данных key. |
name | Имя этой операции (необязательно). |
key_column_index | Индекс столбца в текстовом файле для получения key значений. По умолчанию используется всё содержимое строки. |
value_column_index | Индекс столбца в текстовом файле для получения value значений. По умолчанию используется номер строки, начиная с нуля. |
delimiter | Разделитель для полей в строке. |
| Возвращаемое значение | |
|---|---|
Таблица поиска для сопоставления key_dtype Tensor с индексом int64 Tensor. |
| Исключения | |
|---|---|
ValueError | Если vocabulary_file не задано. |
ValueError | Если num_oov_buckets отрицательно или vocab_size не больше нуля. |
© 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/r1.15/api_docs/python/tf/contrib/lookup/index_table_from_file