다음은 데이터셋 전처리를 진행한 결과입니다.

    <start> may i borrow this book ? <end>
    b'<start> \xc2\xbf puedo tomar prestado este libro ? <end>'

    문장의 시작과 끝에 <start><end>가 찍혔으며, book 다음에 오는 ? 앞에도 공백이 있는 것을 확인할 수 있습니다.

    이제 단어의 악센트를 제거하고 [ENGLISH, SPANISH] 형식으로 단어가 반환되도록 코드로 구현하겠습니다.

    코드 10-28 [ENGLISH, SPANISH] 형식의 단어 반환

    def create_dataset(path, num_examples):
        lines = io.open(path, encoding='UTF-8').read().strip().split('\n')
    
        word_pairs = [[preprocess_sentence(w) for w in l.split('\t')] for l in
                      lines[:num_examples]]
    
        return zip(*word_pairs)
    def max_length(tensor):
        return max(len(t) for t in tensor)
    
    def tokenize(lang): ------ 문장의 토큰화
        lang_tokenizer = tf.keras.preprocessing.text.Tokenizer(
            filters='')
        lang_tokenizer.fit_on_texts(lang)
    
        tensor = lang_tokenizer.texts_to_sequences(lang)
    
        tensor = tf.keras.preprocessing.sequence.pad_sequences(tensor, padding='post')
    
        return tensor, lang_tokenizer
    
    def load_dataset(path, num_examples=None): ------ 입력/출력(english, spanish) 쌍 만들기
        targ_lang, inp_lang = create_dataset(path, num_examples)
    
        input_tensor, inp_lang_tokenizer = tokenize(inp_lang)
        target_tensor, targ_lang_tokenizer = tokenize(targ_lang)
    
        return input_tensor, target_tensor, inp_lang_tokenizer, targ_lang_tokenizer
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.