Python
 Computer >> コンピューター >  >> プログラミング >> Python

TensorFlowとPythonを使ってイリアスデータセットのトークン化された単語を整数に変換する方法

TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装できます。研究用途から本番環境まで幅広く活用されています。

「tensorflow」パッケージは、Windowsでは以下のコマンドでインストールできます。

pip install tensorflow

テンソル(Tensor)はTensorFlowで使用される基本的なデータ構造であり、フロー図におけるエッジ(辺)をつなぐ役割を担います。このフロー図は「データフローグラフ」と呼ばれます。テンソルとは、端的に言えば多次元配列またはリストのことです。

テンソルは主に以下の3つの属性によって識別されます。

  • ランク(Rank) − テンソルの次元数を表します。テンソルの階数、すなわち定義されたテンソルが持つ次元の数と捉えることができます。

  • 型(Type) − テンソルの要素に関連付けられたデータ型を示します。1次元、2次元、n次元など、任意の次元のテンソルに対応します。

  • 形状(Shape) − 行数と列数を組み合わせたものです。

ここでは、William Cowper、Edward(ダービー伯爵)、Samuel Butlerによる3つの翻訳作品のテキストデータを含む「イリアス(Illiad)」データセットを使用します。モデルは、1行のテキストが与えられた際に、それがどの翻訳者によるものかを識別できるよう訓練されます。使用するテキストファイルは事前に前処理されており、文書のヘッダー・フッター、行番号、章タイトルなどは削除済みです。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すると、ブラウザ上でPythonコードを実行でき、環境構築は不要で、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookを基盤として構築されています。

実装例

以下がコードスニペットです。

keys = vocab
values = range(2, len(vocab) + 2) # reserve 0 for padding, 1 for OOV
print("Map the tokens to integers")
init = tf.lookup.KeyValueTensorInitializer(
    keys, values, key_dtype=tf.string, value_dtype=tf.int64)
num_oov_buckets = 1
vocab_table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)
print("A function has been defined to standardize, tokenize and vectorize the dataset using
tokenizer and lookup table")
def preprocess_text(text, label):
    standardized = tf_text.case_fold_utf8(text)
    tokenized = tokenizer.tokenize(standardized)
    vectorized = vocab_table.lookup(tokenized)
    return vectorized, label

コード出典 − https://www.tensorflow.org/tutorials/load_data/text

出力結果

Map the tokens to integers
A function has been defined to standardize, tokenize and vectorize the dataset using tokenizer
and lookup table

解説

  • vocabセットをもとに、StaticVocabularyTableを作成します。

  • トークンは [2, vocab_size + 2] の範囲内の整数へとマッピングされます。

  • 数値0はパディング用、数値1は語彙外(OOV:Out-Of-Vocabulary)トークン用としてそれぞれ予約されています。

  1. TensorFlowとPythonを使って花のデータセットを可視化する方法

    花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。使用するデータセットについて本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Col

  2. PythonとKerasを使って保存済みモデルを再読み込みする方法

    はじめにTensorFlowはGoogleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションの実装などに幅広く活用されています。研究用途から本番環境まで、さまざまな場面で採用されている実績あるフレームワークです。Windows環境では、以下のコマンドで「tensorflow」パッケージをインストールできます。pip install tensorflowテンソルとはテンソルはTensorFlowにおける基本的なデータ構造です。フローダイアグラム(データフローグラフ)内のエッジ同士をつなぐ役割を担