С помощью TensorFlow Transform мы можем предварительно обработать данные, используя Apache Beam. Одним из требований при настройке такого конвейера является определение объекта DatasetMetadata , который содержит схему, содержащую информацию, необходимую для анализа данных из формата на диске или в памяти, в тензоры.
В официальной документации нам приведен пример формы:
raw_data_metadata = dataset_metadata.DatasetMetadata(
dataset_schema.from_feature_spec({
's': tf.FixedLenFeature([], tf.string),
'y': tf.FixedLenFeature([], tf.float32),
'x': tf.FixedLenFeature([], tf.float32),
}))
Это нормально, если ваши необработанные данные представляют собой словарь в форме:
{
's': 'example string',
'y': 32.0,
'x': 35.0
}
Однако я несколько растерялся, когда дело доходит до определения схемы для SequenceExample . В частности, учтите, что мои данные имеют следующий формат:
{
# context features
'length': 5,
# sequence features
'tokens': [
{
'raw': 'The',
'ner-tag': 'O'
},
{
'raw': 'European',
'ner-tag': 'B-org'
},
{
'raw': 'Union',
'ner-tag': 'I-org'
},
{
'raw': 'is',
'ner-tag': 'O'
},
{
'raw': 'nice',
'ner-tag': 'O'
}
...
]
}
Выше у меня есть предложение с двумя последовательностями:
- ner-tag последовательность, которая будет использоваться в качестве метки для модели
- raw последовательность, которая будет использоваться в качестве функции для модели
Как создать схема данных TFT для таких примеров?
Документация для этого немного отсутствует. Любая помощь высоко ценится!