2023-11-01から1ヶ月間の記事一覧
問題文 nlp100.github.io 問題の概要 BERT から転移学習します。この章のこれまでの実装と繋がりがなくなりますが、Transformers ライブラリの Trainer を使います。 import os import datasets import evaluate import numpy as np import pandas as pd fro…
問題文 nlp100.github.io 問題の概要 何かしらのパラメータをチューニングします。 # ref: https://www.shoeisha.co.jp/book/detail/9784798157184 import re from collections import defaultdict import joblib import pandas as pd import torch from gen…
問題文 nlp100.github.io 問題の概要 RNN で確率的勾配降下法を用いて学習した 言語処理100本ノック 2020「82. 確率的勾配降下法による学習」 - u++の備忘録 と同様です。 # ref: https://www.shoeisha.co.jp/book/detail/9784798157184 import re from coll…
問題文 nlp100.github.io 問題の概要 CNN を実装します。なお実装時には『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』(翔泳社)のサンプルコードを一部流用しました。 # ref: https://www.shoeisha.co.jp/book/detail…
問題文 nlp100.github.io 問題の概要 RNN を双方向しました。具体的には bidirectional=True にし、続く層の hidden_size を 2 倍にしています。なお実装時には『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』(翔泳社)…
問題文 nlp100.github.io 問題の概要 Google Newsデータセットの学習済み単語ベクトルで単語埋め込みを初期化して学習します。なお実装時には『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』(翔泳社)のサンプルコード…
問題文 nlp100.github.io 問題の概要 ミニバッチでの処理を追加します。なお実装時には『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』(翔泳社)のサンプルコードを一部流用しました。 # ref: https://www.shoeisha.co.…
問題文 nlp100.github.io 問題の概要 確率的勾配降下法による学習の処理を追加します。なお実装時には『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』(翔泳社)のサンプルコードを一部流用しました。 # ref: https://ww…
問題文 nlp100.github.io 問題の概要 RNN を実装します。なお実装時には『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』(翔泳社)のサンプルコードを一部流用しました。 import re from collections import defaultdict…
問題文 nlp100.github.io 問題の概要 指示通りに愚直に実装します。 from collections import defaultdict import joblib import pandas as pd def text2id(text): return [word2token[word] for word in text.split()] X_train = pd.read_table('ch06/train…
問題文 nlp100.github.io 問題の概要 ネットワークを 3 層に変更しています。 import joblib import matplotlib.pyplot as plt import numpy as np import torch from torch import nn, optim from torch.utils.data import DataLoader, TensorDataset from …
問題文 nlp100.github.io 問題の概要 .to('cuda:0') で GPU に転送します。 import joblib import matplotlib.pyplot as plt import numpy as np import torch from torch import nn, optim from torch.utils.data import DataLoader, TensorDataset from tq…
問題文 nlp100.github.io 問題の概要 ミニバッチ化の処理を追加しました。 import joblib import matplotlib.pyplot as plt import numpy as np import torch from torch import nn, optim from torch.utils.data import DataLoader, TensorDataset from tqd…
問題文 nlp100.github.io 問題の概要 エポックごとにモデルを保存します。 import joblib import matplotlib.pyplot as plt import numpy as np import torch from torch import nn, optim X_train = joblib.load('ch08/X_train.joblib') y_train = joblib.l…
問題文 nlp100.github.io 問題の概要 損失と正解率をプロットします。 import joblib import matplotlib.pyplot as plt import numpy as np import torch from torch import nn, optim X_train = joblib.load('ch08/X_train.joblib') y_train = joblib.load(…
問題文 nlp100.github.io 問題の概要 正解率を計算します。 import joblib import numpy as np import torch from torch import nn, optim X_train = joblib.load('ch08/X_train.joblib') y_train = joblib.load('ch08/y_train.joblib') X_train = torch.fro…
問題文 nlp100.github.io 問題の概要 確率的勾配降下法で 100 エポック学習します。 import joblib import numpy as np import torch from torch import nn, optim X_train = joblib.load('ch08/X_train.joblib') y_train = joblib.load('ch08/y_train.jobli…
問題文 nlp100.github.io 問題の概要 損失と勾配を計算します。 import joblib import numpy as np import torch import torch.nn as nn X_train = joblib.load('ch08/X_train.joblib') y_train = joblib.load('ch08/y_train.joblib') X_train = torch.from_…
問題文 nlp100.github.io 問題の概要 単層ニューラルネットワークを定義し、予測します。 import joblib import numpy as np import torch import torch.nn as nn X_train = joblib.load('ch08/X_train.joblib') X_train = torch.from_numpy(X_train.astype(…
問題文 nlp100.github.io 問題の概要 SWEM *1と呼ばれる特徴量を生成します。 import joblib import numpy as np import pandas as pd from gensim.models import KeyedVectors from tqdm import tqdm def culcSwem(row): global model swem = [model[w] if …
問題文 nlp100.github.io 問題の概要 t-SNEで可視化する以外は 言語処理100本ノック 2020「67. k-meansクラスタリング」 - u++の備忘録 と同様です。 import matplotlib.pyplot as plt import numpy as np import pandas as pd from gensim.models import Ke…
問題文 nlp100.github.io 問題の概要 Ward法による階層型クラスタリングを実行・可視化する以外は 言語処理100本ノック 2020「67. k-meansクラスタリング」 - u++の備忘録 と同じです。 import matplotlib.pyplot as plt import numpy as np import pandas a…
問題文 nlp100.github.io 問題の概要 最初に questions-words.txt から国名を取得します。続いて、国名に関する単語ベクトルを抽出し,k-meansクラスタリングをクラスタ数k=5として実行します。 import numpy as np import pandas as pd from gensim.models …
問題文 nlp100.github.io 問題の概要 言語処理100本ノック 2020「61. 単語の類似度」 - u++の備忘録 と 言語処理100本ノック 2020「64. アナロジーデータでの実験」 - u++の備忘録 の組み合わせです。 import numpy as np import pandas as pd from gensim.m…
問題文 nlp100.github.io 問題の概要 pandas で読み込み、正解率を計算します。いくつか方法はありますが、ここでは列ごとに一致しているか否かの bool 値を得た後、sum() で true の個数を数えています。この値を列数で割ると、確率に変換できます。 import…
問題文 nlp100.github.io 問題の概要 言語処理100本ノック 2020「63. 加法構成性によるアナロジー」 - u++の備忘録 の処理を繰り返すのみです。for 文で回しても良いですが、ここでは pandas の progress_apply を使いました。時間がかかるので、tqdm で実行…
問題文 nlp100.github.io 問題の概要 most_similar の引数*1を活用します。 from gensim.models import KeyedVectors model = KeyedVectors.load_word2vec_format('ch07/GoogleNews-vectors-negative300.bin', binary=True) result = model.most_similar(pos…
問題文 nlp100.github.io 問題の概要 most_similar *1 を使います。topn で上位何件を返すかを指定できます。デフォルトで topn=10 となっていますが、分かりやすさのために敢えて明示的に指定しています。 from gensim.models import KeyedVectors model = …
問題文 nlp100.github.io 問題の概要 コサイン類似度を計算します。 from gensim.models import KeyedVectors model = KeyedVectors.load_word2vec_format('ch07/GoogleNews-vectors-negative300.bin', binary=True) print(model.similarity("United_States",…
問題文 nlp100.github.io 問題の概要 本章では、単語の意味を実ベクトルで表現する単語ベクトル(単語埋め込み)を扱います。最初に、学習済みモデルをダウンロードし、単語ベクトルを表示します。 from gensim.models import KeyedVectors model = KeyedVec…