🚀 tner/twitter-roberta-base-dec2021-tweetner7-all
このモデルは、tner/tweetner7 データセットの train_all
スプリットで、cardiffnlp/twitter-roberta-base-dec2021 をファインチューニングしたものです。モデルのファインチューニングは、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-all")
model.predict([text_format])
transformersライブラリを通じて使用することもできますが、現時点ではCRF層がサポートされていないため、推奨されません。
✨ 主な機能
データセットと評価指標
- データセット: tner/tweetner7
- 評価指標: F1、Precision、Recall
モデルの性能
2021年のテストセットでの結果は以下の通りです。
- F1 (micro): 0.6447001005249637
- Precision (micro): 0.6234607906675308
- Recall (micro): 0.6674375578168362
- F1 (macro): 0.5982200308213212
- Precision (macro): 0.576608821080324
- Recall (macro): 0.622268182336741
各エンティティのF1スコアの内訳は以下の通りです。
- corporation: 0.5048128342245989
- creative_work: 0.45297029702970293
- event: 0.46761313220940554
- group: 0.6009661835748793
- location: 0.6592252133946159
- person: 0.8302430243024302
- product: 0.6717095310136157
F1スコアの信頼区間は、ブートストラップ法により以下のように求められます。
- F1 (micro):
- 90%: [0.6358921767926183, 0.6542958612061787]
- 95%: [0.6341987223616053, 0.6560992650244356]
- F1 (macro):
- 90%: [0.6358921767926183, 0.6542958612061787]
- 95%: [0.6341987223616053, 0.6560992650244356]
完全な評価結果は、NERのメトリックファイル と エンティティスパンのメトリックファイル で確認できます。
📦 インストール
このモデルを使用するには、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-all")
model.predict([text_format])
🔧 技術詳細
学習時のハイパーパラメータ
学習時には、以下のハイパーパラメータが使用されました。
- データセット: ['tner/tweetner7']
- データセットの分割: train_all
- データセット名: None
- ローカルデータセット: None
- モデル: cardiffnlp/twitter-roberta-base-dec2021
- CRF: True
- 最大長: 128
- エポック数: 30
- バッチサイズ: 32
- 学習率: 1e-05
- 乱数シード: 0
- 勾配累積ステップ数: 1
- 重み減衰: 1e-07
- 学習率のウォームアップステップ比率: 0.3
- 最大勾配ノルム: 1
完全な設定は、ファインチューニングパラメータファイル で確認できます。
📄 ライセンス
モデルを使用する場合は、T-NER論文とTweetNER7論文を引用してください。
T-NER
@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.",
}
TweetNER7
@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",
}