🚀 tner/twitter-roberta-base-dec2021-tweetner7-random
このモデルは、cardiffnlp/twitter-roberta-base-dec2021 を tner/tweetner7 データセットの train_random
分割でファインチューニングしたバージョンです。モデルのファインチューニングは T-NER のハイパーパラメータ探索を通じて行われています(詳細はリポジトリを参照)。2021年のテストセットでは、以下の結果を達成しています。
🚀 クイックスタート
このモデルは、tnerライブラリ を通じて使用できます。まずはライブラリをpipでインストールしましょう。
pip install tner
TweetNER7 は、アカウント名とURLが特殊な形式に変換されたツイートを前処理しています(詳細はデータセットページを参照)。そのため、ツイートを適切に処理してからモデルの予測を実行します。
import re
from urlextract import URLExtract
from tner import TransformersNER
extractor = URLExtract()
def format_tweet(tweet):
urls = extractor.find_urls(tweet)
for url in urls:
tweet = tweet.replace(url, "{{URL}}")
tweet = re.sub(r"\b(\s*)(@[\S]+)\b", r'\1{\2@}', tweet)
return tweet
text = "Get the all-analog Classic Vinyl Edition of `Takin' Off` Album from @herbiehancock via @bluenoterecords link below: http://bluenote.lnk.to/AlbumOfTheWeek"
text_format = format_tweet(text)
model = TransformersNER("tner/twitter-roberta-base-dec2021-tweetner7-random")
model.predict([text_format])
transformersライブラリを介して使用することもできますが、現時点ではCRF層がサポートされていないため、推奨されません。
✨ 主な機能
- このモデルは、cardiffnlp/twitter-roberta-base-dec2021 を tner/tweetner7 データセットでファインチューニングしたものです。
- 2021年のテストセットで、F1 (micro) が0.6321284238886395、Precision (micro) が0.6142015706806283、Recall (micro) が0.6511332099907493 の結果を達成しています。
- 各エンティティのF1スコアも提供されており、personのスコアが0.8268075031870332 と最も高くなっています。
📦 インストール
このモデルを使用するには、tnerライブラリ をインストールする必要があります。以下のコマンドでインストールできます。
pip install tner
💻 使用例
基本的な使用法
import re
from urlextract import URLExtract
from tner import TransformersNER
extractor = URLExtract()
def format_tweet(tweet):
urls = extractor.find_urls(tweet)
for url in urls:
tweet = tweet.replace(url, "{{URL}}")
tweet = re.sub(r"\b(\s*)(@[\S]+)\b", r'\1{\2@}', tweet)
return tweet
text = "Get the all-analog Classic Vinyl Edition of `Takin' Off` Album from @herbiehancock via @bluenoterecords link below: http://bluenote.lnk.to/AlbumOfTheWeek"
text_format = format_tweet(text)
model = TransformersNER("tner/twitter-roberta-base-dec2021-tweetner7-random")
model.predict([text_format])
📚 ドキュメント
テストセットの結果
このモデルは、2021年のテストセットで以下の結果を達成しています。
指標 |
値 |
F1 (micro) |
0.6321284238886395 |
Precision (micro) |
0.6142015706806283 |
Recall (micro) |
0.6511332099907493 |
F1 (macro) |
0.583682304736069 |
Precision (macro) |
0.5654677691354458 |
Recall (macro) |
0.6047150410746663 |
各エンティティのF1スコアは以下の通りです。
エンティティ |
F1スコア |
corporation |
0.5019685039370079 |
creative_work |
0.41401273885350315 |
event |
0.4564727108705458 |
group |
0.5892444737710327 |
location |
0.6486486486486486 |
person |
0.8268075031870332 |
product |
0.6486215538847118 |
F1スコアの信頼区間は、ブートストラップによって以下のように取得されています。
指標 |
信頼区間 |
F1 (micro) (90%) |
[0.6245116881258609, 0.6411928894306437] |
F1 (micro) (95%) |
[0.6221686986039963, 0.642603475030015] |
F1 (macro) (90%) |
[0.6245116881258609, 0.6411928894306437] |
F1 (macro) (95%) |
[0.6221686986039963, 0.642603475030015] |
完全な評価は、NERのメトリックファイル と エンティティスパンのメトリックファイル で確認できます。
トレーニングのハイパーパラメータ
トレーニング中に使用されたハイパーパラメータは以下の通りです。
パラメータ |
値 |
データセット |
['tner/tweetner7'] |
データセット分割 |
train_random |
データセット名 |
None |
ローカルデータセット |
None |
モデル |
cardiffnlp/twitter-roberta-base-dec2021 |
CRF |
True |
最大長 |
128 |
エポック数 |
30 |
バッチサイズ |
32 |
学習率 |
0.0001 |
乱数シード |
0 |
勾配累積ステップ数 |
1 |
重み減衰 |
1e-07 |
学習率ウォームアップステップ比率 |
0.15 |
最大勾配ノルム |
1 |
完全な設定は、ファインチューニングパラメータファイル で確認できます。
引用
このモデルを使用する場合は、T-NER論文とTweetNER7論文を引用してください。
@inproceedings{ushio-camacho-collados-2021-ner,
title = "{T}-{NER}: An All-Round Python Library for Transformer-based Named Entity Recognition",
author = "Ushio, Asahi and
Camacho-Collados, Jose",
booktitle = "Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics: System Demonstrations",
month = apr,
year = "2021",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2021.eacl-demos.7",
doi = "10.18653/v1/2021.eacl-demos.7",
pages = "53--62",
abstract = "Language model (LM) pretraining has led to consistent improvements in many NLP downstream tasks, including named entity recognition (NER). In this paper, we present T-NER (Transformer-based Named Entity Recognition), a Python library for NER LM finetuning. In addition to its practical utility, T-NER facilitates the study and investigation of the cross-domain and cross-lingual generalization ability of LMs finetuned on NER. Our library also provides a web app where users can get model predictions interactively for arbitrary text, which facilitates qualitative model evaluation for non-expert programmers. We show the potential of the library by compiling nine public NER datasets into a unified format and evaluating the cross-domain and cross- lingual performance across the datasets. The results from our initial experiments show that in-domain performance is generally competitive across datasets. However, cross-domain generalization is challenging even with a large pretrained LM, which has nevertheless capacity to learn domain-specific features if fine- tuned on a combined dataset. To facilitate future research, we also release all our LM checkpoints via the Hugging Face model hub.",
}
@inproceedings{ushio-etal-2022-tweet,
title = "{N}amed {E}ntity {R}ecognition in {T}witter: {A} {D}ataset and {A}nalysis on {S}hort-{T}erm {T}emporal {S}hifts",
author = "Ushio, Asahi and
Neves, Leonardo and
Silva, Vitor and
Barbieri, Francesco. and
Camacho-Collados, Jose",
booktitle = "The 2nd Conference of the Asia-Pacific Chapter of the Association for Computational Linguistics and the 12th International Joint Conference on Natural Language Processing",
month = nov,
year = "2022",
address = "Online",
publisher = "Association for Computational Linguistics",
}