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

Pythonを使用してテキストデータを次元ベクトルに埋め込むにはどうすればよいですか?


Tensorflowは、Googleが提供する機械学習フレームワークです。これは、Pythonと組み合わせて使用​​されるオープンソースのフレームワークであり、アルゴリズム、深層学習アプリケーションなどを実装します。研究や生産目的で使用されます。

Kerasは、プロジェクトONEIROS(オープンエンドの神経電子インテリジェントロボットオペレーティングシステム)の研究の一環として開発されました。 Kerasは、Pythonで記述されたディープラーニングAPIです。これは、機械学習の問題を解決するのに役立つ生産的なインターフェースを備えた高レベルのAPIです。 Tensorflowフレームワーク上で実行されます。迅速な実験を支援するために構築されました。機械学習ソリューションの開発とカプセル化に不可欠な、本質的な抽象化とビルディングブロックを提供します。

KerasはすでにTensorflowパッケージに含まれています。以下のコード行を使用してアクセスできます。

import tensorflow
from tensorflow import keras

Keras機能APIは、シーケンシャルAPIを使用して作成されたモデルと比較してより柔軟なモデルを作成するのに役立ちます。機能APIは、非線形トポロジを持つモデルで動作し、レイヤーを共有し、複数の入力と出力で動作します。深層学習モデルは通常、複数のレイヤーを含む有向非巡回グラフ(DAG)です。機能APIは、レイヤーのグラフを作成するのに役立ちます。

以下のコードを実行するためにGoogleColaboratoryを使用しています。 Google ColabまたはColaboratoryは、ブラウザー上でPythonコードを実行するのに役立ち、構成が不要で、GPU(グラフィックプロセッシングユニット)に無料でアクセスできます。 Colaboratoryは、JupyterNotebookの上に構築されています。以下は、タイトル内のすべての単語を64次元のベクトルに埋め込むコードスニペットです-

print("Number of unique issue tags")
num_tags = 12
print("Size of vocabulary while preprocessing text data")
num_words = 10000
print("Number of classes for predictions")
num_classes = 4
title_input = keras.Input(
   shape=(None,), name="title"
)
print("Variable length int sequence")
body_input = keras.Input(shape=(None,), name="body")
tags_input = keras.Input(
   shape=(num_tags,), name="tags"
)
print("Embed every word in the title to a 64-dimensional vector")
title_features = layers.Embedding(num_words, 64)(title_input)
print("Embed every word into a 64-dimensional vector")
body_features = layers.Embedding(num_words, 64)(body_input)
print("Reduce sequence of embedded words into single 128-dimensional vector")
title_features = layers.LSTM(128)(title_features)
print("Reduce sequence of embedded words into single 132-dimensional vector")
body_features = layers.LSTM(32)(body_features)
print("Merge available features into a single vector by concatenating it")
x = layers.concatenate([title_features, body_features, tags_input])
print("Use logistic regression to predict the features")
priority_pred = layers.Dense(1, name="priority")(x)
department_pred = layers.Dense(num_classes, name="class")(x)
print("Instantiate a model that predicts priority and class")
model = keras.Model(
   inputs=[title_input, body_input, tags_input],
   outputs=[priority_pred, department_pred],
)

コードクレジット-https://www.tensorflow.org/guide/keras/functional

出力

Number of unique issue tags
Size of vocabulary while preprocessing text data
Number of classes for predictions
Variable length int sequence
Embed every word in the title to a 64-dimensional vector
Embed every word into a 64-dimensional vector
Reduce sequence of embedded words into single 128-dimensional vector
Reduce sequence of embedded words into single 132-dimensional vector
Merge available features into a single vector by concatenating it
Use logistic regression to predict the features
Instantiate a model that predicts priority and class

説明

  • 機能APIを使用して、複数の入力と出力を処理できます。

  • これはシーケンシャルAPIでは実行できません。


  1. Pythonの「seaborn」ライブラリを使用してデータを視覚的に表現するにはどうすればよいですか?

    機械学習では、データからモデルを作成し、これまでに見たことのないデータを一般化します。入力として機械学習モデルに提供されるデータは、システムがデータを適切に理解して結果を生成できるようにする必要があります。 Seabornは、データの視覚化に役立つライブラリです。カスタマイズされたテーマと高レベルのインターフェースが付属しています。このインターフェースは、データの種類と、特定のフィルターが適用されたときのデータの動作をカスタマイズおよび制御するのに役立ちます。 Seabornライブラリには、さまざまなスタイルでの作業に役立つ「set_Style()」と呼ばれるインターフェースが含まれていま

  2. 非線形データをPythonのモデルにどのように適合させることができますか?

    データの視覚化に役立つSeabornライブラリを使用します。回帰モデルを作成するときに、多重共線性がチェックされます。これは、連続変数のすべての異なる組み合わせの間に存在する相関関係を理解する必要があるためです。変数間に多重共線性が存在する場合は、それがデータから削除されていることを確認する必要があります。通常、実世界のデータは非線形です。 このような非線形データをモデルに適合させるメカニズムを見つける必要があります。このデータを視覚化するために、Anscombeのデータセットを使用します。 「implot」関数は、この非線形データで使用されます。 これが例です- 例 import pan