Я пытаюсь написать функцию, которая берет два строковых тензора из входных слоев Keras и выполняет над ними некоторые строковые операции.
Мой первый вопрос - как зациклить каждый элемент в тензорах и разбить первыйвведите (полное предложение), используя второй ввод (фразу из двух слов) и извлеките индексы разделенных слов.
Sentence = "this is an example to split on this dummy phrase and get an index"
Phrase = "this dummy phrase"
output = [7, 9]
Функция, которая у меня есть (которая имеет дело со строками)
def get_phrase_inside_sentence_indices(sentence, phrase):
split_sentence = sentence.split(phrase)
split_phrase_len = len(phrase.split(" "))
first_part_of_sentence = split_sentence[0].strip().split(" ")
second_index = split_phrase_len + len(first_part_of_sentence ) - 1
first_index = find_reverse_index(first_part_of_sentence, first_part_of_sentence [-1]) + 1
return first_index, second_index
def find_reverse_index(given_list, value):
return len(given_list) - given_list[-1::-1].index(value) - 1
Как преобразовать эту функцию для работы с тензорами или для циклического преобразования тензоров и применить эту функцию. У меня есть набор предложений (256,1) и набор соответствующих фраз (256,1) в качестве входных данных.
Мой второй вопрос - как преобразовать тензор в строку без кодирования:вывод из слоя:
tf.Tensor([[b'this is an example to split on this dummy phrase and get an index']...], shape=(256, 1), dtype=string)
но я хочу избавиться от "b" в начале.