предварительная обработка текста с использованием строковых операций над тензорами - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь написать функцию, которая берет два строковых тензора из входных слоев 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" в начале.

...