🚀 HeBERT:極性分析と感情認識に使用する事前学習済みBERTモデル
HeBERTはヘブライ語の事前学習済み言語モデルです。GoogleのBERTアーキテクチャに基づき、BERT - Base設定(Devlinら、2018)を採用しています。
🚀 クイックスタート
HeBERTは感情認識や感情分析などの下流タスクに使用できます。以下は異なるタスクの使用例です。
✨ 主な機能
- GoogleのBERTアーキテクチャに基づき、BERT - Base設定を採用。
- ヘブライ語版のOSCAR、ヘブライ語のWikipediaダンプ、およびこの研究で収集された感情に関するユーザー生成コンテンツ(UGC)データの3つのデータセットでトレーニングされています。
- マスク言語モデル(Masked - LM)、感情分類、固有表現認識(NER)などのタスクに使用できます。
📦 インストール
使用する前にtransformers
ライブラリをインストールする必要があります。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
マスク言語モデル(任意の下流タスクに微調整可能)
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("avichr/heBERT")
model = AutoModel.from_pretrained("avichr/heBERT")
from transformers import pipeline
fill_mask = pipeline(
"fill-mask",
model="avichr/heBERT",
tokenizer="avichr/heBERT"
)
fill_mask("הקורונה לקחה את [MASK] ולנו לא נשאר דבר.")
感情分類モデル(極性分析のみ)
from transformers import AutoTokenizer, AutoModel, pipeline
tokenizer = AutoTokenizer.from_pretrained("avichr/heBERT_sentiment_analysis")
model = AutoModel.from_pretrained("avichr/heBERT_sentiment_analysis")
sentiment_analysis = pipeline(
"sentiment-analysis",
model="avichr/heBERT_sentiment_analysis",
tokenizer="avichr/heBERT_sentiment_analysis",
return_all_scores = True
)
>>> sentiment_analysis('אני מתלבט מה לאכול לארוחת צהריים')
[[{'label': 'natural', 'score': 0.9978172183036804},
{'label': 'positive', 'score': 0.0014792329166084528},
{'label': 'negative', 'score': 0.0007035882445052266}]]
>>> sentiment_analysis('קפה זה טעים')
[[{'label': 'natural', 'score': 0.00047328314394690096},
{'label': 'possitive', 'score': 0.9994067549705505},
{'label': 'negetive', 'score': 0.00011996887042187154}]]
>>> sentiment_analysis('אני לא אוהב את העולם')
[[{'label': 'natural', 'score': 9.214012970915064e-05},
{'label': 'possitive', 'score': 8.876807987689972e-05},
{'label': 'negetive', 'score': 0.9998190999031067}]]
このモデルはAWSでも使用できます!詳細はAWSのgitリポジトリをご覧ください。
固有表現認識(NER)モデル
from transformers import pipeline
NER = pipeline(
"token-classification",
model="avichr/heBERT_NER",
tokenizer="avichr/heBERT_NER",
)
NER('דויד לומד באוניברסיטה העברית שבירושלים')
📚 ドキュメント
トレーニングデータセット
HeBERTは3つのデータセットでトレーニングされています。
- ヘブライ語版のOSCAR (Ortiz, 2019):約9.8GBのデータで、10億個の単語と2080万を超える文が含まれています。
- ヘブライ語のWikipediaダンプ (Wikipedia):約650MBのデータで、6300万を超える単語と380万の文が含まれています。
- この研究で収集された感情に関するユーザー生成コンテンツ(UGC)データ(以下に説明)。
感情UGCデータの説明
ユーザー生成コンテンツ(UGC)は、2020年1月から2020年8月までの間に3つの主要なニュースサイトから収集された記事のコメントです。総データサイズは約150MBで、700万を超える単語と35万の文が含まれています。
4000の文が众包作業者によってアノテーションされています(各文には3 - 10人のアノテーション作業者がいます)。アノテーション内容には8種類の感情(怒り、嫌悪、期待、恐怖、喜び、悲しみ、驚き、信頼)と全体的な感情/極性が含まれています。
アノテーションの有効性を検証するために、Krippendorff's alpha (krippendorff, 1970)を使用して、各文における評価者の感情に対する一致性を調べました。alpha > 0.7の文を残しました。評価者は喜び、信頼、嫌悪などの感情については普遍的な一致が見られましたが、一部の感情(期待や驚きなど)については普遍的な意見の相違がありました。これは明らかに、テキストからこれらの感情を識別する複雑さに起因しています。
🔧 技術詳細
HeBERTはGoogleのBERTアーキテクチャに基づき、BERT - Base設定を採用しています。トレーニング時には複数のデータセットを使用して、ヘブライ語の感情分析と認識タスクにおけるモデルの性能を向上させています。
⚠️ 重要な注意
現在は感情分析(極性)モデルのみが公開されており、感情検出モデルは後日公開予定です。
💡 使用上のヒント
このプロジェクトを継続的にフォローしてください。モデルが改善されるにつれて、このページは更新されます。モデルのさらなる機能と最適化が段階的に導入されます。
引用情報
このモデルを使用した場合は、以下のように引用してください。
Chriqui, A., & Yahav, I. (2022). HeBERT & HebEMO: a Hebrew BERT Model and a Tool for Polarity Analysis and Emotion Recognition. INFORMS Journal on Data Science, forthcoming.
@article{chriqui2021hebert,
title={HeBERT \& HebEMO: a Hebrew BERT Model and a Tool for Polarity Analysis and Emotion Recognition},
author={Chriqui, Avihay and Yahav, Inbal},
journal={INFORMS Journal on Data Science},
year={2022}
}
プロジェクトのgitリポジトリ:https://github.com/avichaychriqui/HeBERT