水上_backup/技術資料/BERTのモデル作成
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[水上/技術資料]]
----
目次
#contents
----
*プログラム [#z00fd092]
#ref(chABSA-dataset.zip)
#ref(感情モデル作成.py)
以上の二つをダウンロードする。そして、「chABSA-dataset.zi...
#ref(dirモデル作成.png,,507x150)
*目標 [#z00fd092]
「chABSA-dataset」を使って感情分析を行うためのモデルを作...
**chABSA-datasetとは [#ca461aa8]
chABSA-datasetとは、機械学習で感情分析を行うためのデータ...
上場企業の有価証券報告書(2016年度)をベースに作成されて...
*環境 [#h82a02b0]
Python 3.10.1 64bitでやってますが,たぶんどのバージョンも...
pythonインストールは[[こちら>https://www.python.org/]]
** 下準備[#h82a02b0]
以下のモジュールをインストール
pip install transformers
pip install pandas
pip install scikit-learn
pip install torch
*実行方法[#h82a02b0]
「感情モデル作成.py」を実行するだけ。実行開始から終了まで...
&br;&br;&br;&br;
プログラムは、「データセットの整形」と「モデル作成部分」...
* 「データセットの整形」部分の解説[#h82a02b0]
「データセットの整形」部分は、「chABSA-dataset」のファイ...
データセット整形部分は以下のサイトを参考にした。詳しくは...
https://zenn.dev/robes/articles/a7ba6e172f3a14
* 「モデル作成部分」部分の解説[#h82a02b0]
・概要&br;
整形したデータセットを用いて、BERTを使用した文章分類モデ...
**ステップ1: トークナイザーの準備 [#xd845ba0]
トークナイザーとは、文章をBERTモデルに入力できる形に変換...
以下のコードでHugging Faceの`BertTokenizer`を使用し、事前...
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-unc...
**ステップ2: データの分割 [#x3ecd379]
データをトレーニングデータと検証データに分割している。以...
from sklearn.model_selection import train_test_split
train_texts, val_texts, train_labels, val_labels = train...
**ステップ3: データのトークナイズ[#oceee729]
トークナイザーを使用してテキストデータをトークナイズし、B...
train_encodings = tokenizer(train_texts.tolist(), trunca...
val_encodings = tokenizer(val_texts.tolist(), truncation...
**ステップ4: データセットの作成 [#j17e8182]
トークナイズ済みデータとラベルを使ってPyTorchのカスタムデ...
class SentimentDataset(torch.utils.data.Dataset):
def __init__(self, encodings, labels):
self.encodings = encodings
self.labels = labels
def __getitem__(self, idx):
item = {key: torch.tensor(val[idx]) for key, val ...
item['labels'] = torch.tensor(self.labels[idx])
return item
def __len__(self):
return len(self.labels)
train_dataset = SentimentDataset(train_encodings, train_...
val_dataset = SentimentDataset(val_encodings, val_labels...
**ステップ5: モデルの初期化とトレーニング [#b2ec7ec0]
事前学習済みのBERTモデルを使用して文章分類用のモデルを作...
model = BertForSequenceClassification.from_pretrained('b...
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=3,
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
logging_steps=10,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=val_dataset,
)
trainer.train()
**ステップ6: モデルの保存 [#b3b86132]
トレーニング済みのモデルとトークナイザーを保存する。
output_dir = './saved_model'
model.save_pretrained(output_dir)
tokenizer.save_pretrained(output_dir)
**ステップ7: モデルの評価 [#f8133ccf]
モデルの評価を行い、結果を表示する。
eval_result = trainer.evaluate()
print(eval_result)
*参考文献 [#ddfa4bf2]
↓【自然言語処理】【感情分析】chABSA-datasetを扱いやすいよ...
https://zenn.dev/robes/articles/a7ba6e172f3a14
終了行:
[[水上/技術資料]]
----
目次
#contents
----
*プログラム [#z00fd092]
#ref(chABSA-dataset.zip)
#ref(感情モデル作成.py)
以上の二つをダウンロードする。そして、「chABSA-dataset.zi...
#ref(dirモデル作成.png,,507x150)
*目標 [#z00fd092]
「chABSA-dataset」を使って感情分析を行うためのモデルを作...
**chABSA-datasetとは [#ca461aa8]
chABSA-datasetとは、機械学習で感情分析を行うためのデータ...
上場企業の有価証券報告書(2016年度)をベースに作成されて...
*環境 [#h82a02b0]
Python 3.10.1 64bitでやってますが,たぶんどのバージョンも...
pythonインストールは[[こちら>https://www.python.org/]]
** 下準備[#h82a02b0]
以下のモジュールをインストール
pip install transformers
pip install pandas
pip install scikit-learn
pip install torch
*実行方法[#h82a02b0]
「感情モデル作成.py」を実行するだけ。実行開始から終了まで...
&br;&br;&br;&br;
プログラムは、「データセットの整形」と「モデル作成部分」...
* 「データセットの整形」部分の解説[#h82a02b0]
「データセットの整形」部分は、「chABSA-dataset」のファイ...
データセット整形部分は以下のサイトを参考にした。詳しくは...
https://zenn.dev/robes/articles/a7ba6e172f3a14
* 「モデル作成部分」部分の解説[#h82a02b0]
・概要&br;
整形したデータセットを用いて、BERTを使用した文章分類モデ...
**ステップ1: トークナイザーの準備 [#xd845ba0]
トークナイザーとは、文章をBERTモデルに入力できる形に変換...
以下のコードでHugging Faceの`BertTokenizer`を使用し、事前...
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-unc...
**ステップ2: データの分割 [#x3ecd379]
データをトレーニングデータと検証データに分割している。以...
from sklearn.model_selection import train_test_split
train_texts, val_texts, train_labels, val_labels = train...
**ステップ3: データのトークナイズ[#oceee729]
トークナイザーを使用してテキストデータをトークナイズし、B...
train_encodings = tokenizer(train_texts.tolist(), trunca...
val_encodings = tokenizer(val_texts.tolist(), truncation...
**ステップ4: データセットの作成 [#j17e8182]
トークナイズ済みデータとラベルを使ってPyTorchのカスタムデ...
class SentimentDataset(torch.utils.data.Dataset):
def __init__(self, encodings, labels):
self.encodings = encodings
self.labels = labels
def __getitem__(self, idx):
item = {key: torch.tensor(val[idx]) for key, val ...
item['labels'] = torch.tensor(self.labels[idx])
return item
def __len__(self):
return len(self.labels)
train_dataset = SentimentDataset(train_encodings, train_...
val_dataset = SentimentDataset(val_encodings, val_labels...
**ステップ5: モデルの初期化とトレーニング [#b2ec7ec0]
事前学習済みのBERTモデルを使用して文章分類用のモデルを作...
model = BertForSequenceClassification.from_pretrained('b...
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=3,
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
logging_steps=10,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=val_dataset,
)
trainer.train()
**ステップ6: モデルの保存 [#b3b86132]
トレーニング済みのモデルとトークナイザーを保存する。
output_dir = './saved_model'
model.save_pretrained(output_dir)
tokenizer.save_pretrained(output_dir)
**ステップ7: モデルの評価 [#f8133ccf]
モデルの評価を行い、結果を表示する。
eval_result = trainer.evaluate()
print(eval_result)
*参考文献 [#ddfa4bf2]
↓【自然言語処理】【感情分析】chABSA-datasetを扱いやすいよ...
https://zenn.dev/robes/articles/a7ba6e172f3a14
ページ名: