id列を文字列に戻す[keras][Tokenize]
# Importing library from keras.preprocessing.text import Tokenizer # My texts texts = ['These are two crazy sentences', 'that I want to convert back and forth'] # Creating a tokenizer tokenizer = Tokenizer(lower=True) # Building word indices tokenizer.fit_on_texts(texts) # Tokenizing sentences # テキストをid列に変換 sentences = tokenizer.texts_to_sequences(texts) print(sentences) # 以下は出力。テキストが整数のid列に変換されていることがわかる >> [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12, 13]] # Creating a reverse dictionary # .word_indexで得られる辞書は{フレーズ:id}となっているので、reversedされている reverse_word_map = dict(map(reversed, tokenizer.word_index.items())) print(reverse_word_map) # 以下は出力。{id:フレーズ}の辞書が出力されていることがわかる >> {1: 'these', 2: 'are', 3: 'two', 4: 'crazy', 5: 'sentences', 6: 'that', 7: 'i', 8: 'want', 9: 'to', 10: 'convert', 11: 'back', 12: 'and', 13: 'forth'} # Function takes a tokenized sentence and returns the words # id列を文字列に変換するための関数を定義 def sequence_to_text(list_of_indices): # Looking up words in dictionary words = [reverse_word_map.get(letter) for letter in list_of_indices] return(words) # Creating texts my_texts = list(map(sequence_to_text, sentences)) print(my_texts) # 以下は出力。id列から文字列に変換することに成功。 >> [['these', 'are', 'two', 'crazy', 'sentences'], ['that', 'i', 'want', 'to', 'convert', 'back', 'and', 'forth']]
Reference
https://stackoverflow.com/questions/41971587/how-to-convert-predicted-sequence-back-to-text-in-keras
ディスカッション
コメント一覧
まだ、コメントがありません