3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeScriptでAIの技術を身に着ける

Last updated at Posted at 2023-02-28

ChatGPTの登場やBirdの開発など、最近はAIの技術がますます注目されており、多くの人々がAIに関する知識を身に着けようとしています。そこで、今回はTypeScriptという言語を使ってAIの技術を身に着ける方法について解説しようと思います。

AIの技術を身に着ける方法

AIの技術を身に着けるには、下記のようなことが重要です。

  1. AIに関する基本的な知識を身に着けられるように本を読んだり、オンライン教材を使ってみる
  2. AIの技術を実際に使ってみる
    勿論、一朝一夕で身に着けられるスキルではないですが、
    AI関連でよく話題に出るようなPythonでなくても、
    TypeScriptのような身近な言語でもAIの技術を実装することはできるので、
    より効率的に学習を進めることができます。

具体的には、以下のような手順がおすすめです。
※TypeScriptをすでに日常的に使っている人は、1は飛ばしても問題ないです。

1. TypeScriptの基礎を学ぶ

何はともあれまずは、TypeScriptの基礎知識が必要です。
TypeScriptの公式サイトや書籍、オンライン講座などから学習することができます。
下記のようなサイトを利用して知識を得ましょう。

2. AIのライブラリやフレームワークを学ぶ

AIの技術を身に着けるためには、機械学習やディープラーニングのライブラリやフレームワークを学ぶ必要があります。
例えば、TensorFlowやKerasといったライブラリや、PyTorchやMXNetといったフレームワークがあります。これらのライブラリやフレームワークを使ってAIの技術を実装することができます。

今回はTensorFlow.jsというライブラリを使って、簡単な自然言語処理(NLP)システムを作成してみます。
TensorFlow.js

必要なパッケージのインストール

まず、以下のコマンドを使用して、TensorFlow.jsとTypeScriptを含む必要なパッケージをインストールします。

npm install @tensorflow/tfjs @tensorflow-models/universal-sentence-encoder @types/node typescript

@tensorflow/tfjsは、TensorFlow.js本体のパッケージです。
@tensorflow-models/universal-sentence-encoderは、NLPタスクに広く使用されるモデルであるUniversal Sentence Encoderを使用するためのパッケージです。
@types/nodeは、Node.jsの型定義ファイルが含まれるパッケージで、TypeScriptプロジェクトで使用する場合に必要です。

TypeScriptプロジェクトの作成

次に、以下のコマンドを使用して、TypeScriptプロジェクトを作成します。

mkdir my-app // ディレクトリの作成
cd my-app    // ディレクトリの移動
npm init -y  // npmの初期化
tsc --init   // tsconfig.jsonファイルを生成

コードの記述

作成したプロジェクトフォルダ内に、index.tsファイルを作成し、以下のコードを記述します。

import * as tf from '@tensorflow/tfjs';
import * as use from '@tensorflow-models/universal-sentence-encoder';

async function run() {
  // モデルをロードする
  const model = await use.load();

  // 文章をベクトル化する
  const sentence = 'Hello, world!';
  const embeddings = await model.embed(sentence);

  // ベクトルをコンソールに出力する
  embeddings.print();
}

run();

このコードは、Universal Sentence Encoderを使用して、与えられた文章をベクトルに変換し、そのベクトルをコンソールに出力するものです。

具体的には、use.load()メソッドでUniversal Sentence Encoderをロードし、model.embed()メソッドで与えられた文章をベクトル化します。その後、embeddings.print()メソッドでベクトルをコンソールに出力します。

コードのビルド

以下のコマンドを使用して、TypeScriptコードをJavaScriptにコンパイルします。

tsc

index.jsファイルが作成されます。

HTMLファイルの作成

最後に、index.htmlファイルを作成します。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>My NLP App</title>
  </head>
  <body>
    <h1>My NLP App</h1>
    <script src="index.js"></script>
  </body>
</html>

アプリケーションの実行

アプリケーションを実行します。
アプリケーションを実行するために、ローカルサーバーをインストールします。

npm install -g http-server
http-server

これにより、ブラウザでhttp://localhost:8080にアクセスすることができます。このページを開くと、コンソールにベクトルが出力されます。

Tensor
    [[ 0.0313,  0.0509,  0.0085, ...,  0.0125,  0.0298,  0.0239]]

このベクトルは、文章を512次元の密ベクトル表現に変換されています。
このような密ベクトル表現を用いることで、文章の意味や関連性を計算したり、文章間の類似度を比較することができます。

まとめ

以上が、TensorFlow.jsとTypeScriptを使用して自然言語処理システムを作成する方法の基本的な手順です。今回はとにかく手軽に試してみるために、Universal Sentence Encoderを使用して、文章をベクトルに変換するコードを記述しました。

この例を基に、より高度な自然言語処理システムを作成することができます。TensorFlow.jsとTypeScriptを組み合わせることで、JavaScriptで高速かつ効率的なNLPシステムを開発することができます。

3
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?