■イベント :自然言語処理勉強会 https://sansan.connpass.com/event/190157/ ■登壇概要 タイトル:実務で使う固有表現抽出 発表者: DSOC R&D研究員 高橋 寛治 ▼Twitter https://twitter.com/SansanRandD
「Simple Transformers」で「固有表現抽出」を行う方法をまとめました。 1. 固有表現抽出「固有抽出表現」(NER : Named Entity Recognition)とは、「固有表現」(組織名、人名、場所名、日付、金額など)をテキスト中から抽出するタスクです。トークンを分類するタスクでもあります。 利用例は、次のとおりです。 ・大量の記事から、特定の企業の情報を抽出。 ・メールの文面から、スケジュール登録。 ・AIアシスタントで音声をテキスト化したものから、命令を認識。サポートモデルは、次のとおりです。 ・BERT ・CamemBERT ・DistilBERT ・ELECTRA ・RoBERTa ・XLM-RoBERTa「固有表現抽出」の最小限のコードは、次のとおりです。 from simpletransformers.ner import NERModel impor
今回は BERT における事前学習の改良手法である ELECTRA の検証です。ELECTRA はモデルサイズ、データ、計算量が同一条件であればオリジナルの BERT を凌ぐ性能とのことなので結果が楽しみなところです。事前学習をした後のファインチューニングは、いつも livedoor News Corpus の文書分類ばかりだったので、今回は固有表現抽出を試すことにしました。 1. はじめに 今回は BERT における事前学習の改良手法である ELECTRA 1 の検証です。 BERT に関しては 第3回 で取り上げていますが、トークン化が Sentencepiece である為、トークン単位での処理に難がありました2。今回は ELECTRA を試すにあたり、そのあたりの対応も入れ、 Megagon Labs さんから公開されている UD_Japanese-GSD v2.6-NE 3 を使っ
TL;DR TransformersのNERではFast Tokenizerを使うことで、サブトークン ↔ ラベルのアラインメントが実装できる。 長いテキスト入力については、無駄なpaddingを最小限にとどめて高速処理するために、入力を固定長分割するのが良い。 検出漏れが問題になるようであれば、ストライド付きのwindow処理を追加するのが良い。 サンプル実装: github.com 背景 この記事を目に留めていただいた方にはおそらくおなじみであろう Hugging Face の Transformers *1。 BERT等のTransformer素子ベース事前学習モデルを用いた転移学習が容易に実験できるライブラリである。 最新モデルのモジュールがすごいスピードで実装されることに加えて、事前学習モデルおよび依存するトークナイザが一緒に管理・ダウンロードできる点がご利益として特に大きい。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く