2017-12-06 10 views
0

対応するラベル「0」または「1」(迷惑メール/非迷惑メール)を持つテキストドキュメント(電子メール)の.tfrecordデータセットがあります。このデータセットはすべて既に.tfrecordファイルの形式です。私は電子メールを言葉の表現に変えようとしています。私はそれを行うためのすべてのヘルパーメソッドを持っていますが、私はまだtfrecordsに精通していません。TFRecordsファイルの前処理テキストデータ

def read_from_tfrecord(filenames): 

    tfrecord_file_queue = tf.train.string_input_producer([filenames], name='queue') 
    reader = tf.TFRecordReader() 

    _, tfrecord_serialized = reader.read(tfrecord_file_queue) 

    tfrecord_features = tf.parse_single_example(tfrecord_serialized, 
         features={ 
          'label': tf.FixedLenFeature([], tf.int64), 
          'text': tf.FixedLenFeature([], tf.string), 
         }, name='features') 

    text = tfrecord_features['text'] 
    label = tfrecord_features['label'] 

    return label, text 

私は「テキスト」を修正するために私のヘルパーメソッドを使用したい場合はどのように進めるべき:これは私がtf_recordファイルを読むために、これまで持っているものでしょうか?

答えて

0

tf.parse_single_exampleは、キーをテンソルにマッピングする辞書を返します。つまり、textはテンソルです。したがって、テンソル演算を使用して単語の袋に変換することができます。例えば

text = tf.unique(tf.string_split([text]).values).y 

これは、電子メールで(スペースによって分割)すべてのユニークなトークンを返します。句読点やその他のケースを処理するためには、おそらく多くの操作を追加する必要があります。