Upgrade to Pro — share decks privately, control downloads, hide ads and more …

実務で使う固有表現抽出 / Practical Use of Named Entity Recognition

Sansan DSOC
October 09, 2020

実務で使う固有表現抽出 / Practical Use of Named Entity Recognition

■イベント 
:自然言語処理勉強会
https://sansan.connpass.com/event/190157/

■登壇概要
タイトル:実務で使う固有表現抽出
発表者: 
DSOC R&D研究員 高橋 寛治

▼Twitter
https://twitter.com/SansanRandD

Sansan DSOC

October 09, 2020
Tweet

More Decks by Sansan DSOC

Other Decks in Technology

Transcript

  1. 実務で使う固有表現抽出
    Sansan ⾃然⾔語処理勉強会(2020.10.09)
    Sansan株式会社 DSOC
    R&D研究員 ⾼橋寛治

    View Slide

  2. Data Strategy and Operation Center
    Contents
    固有表現抽出の概要
    実務での固有表現抽出事例
    固有表現抽出器を作ろう

    View Slide

  3. 固有表現抽出技術の概要

    View Slide

  4. Data Strategy and Operation Center
    固有表現抽出
    ⾃然⾔語で記述されたテキスト中に含まれている組織名や⼈名、
    ⽇付け表現など、定義に従ったチャンクのこと
    Sansan株式会社 の ⾼橋寛治 が 2019年10⽉23⽇ に本発表を⾏います。
    組織名 ⼈名 ⽇付
    固有表現抽出とは、これら固有表現をテキスト中から抽出すること

    View Slide

  5. Data Strategy and Operation Center
    固有表現抽出のざっくりした研究動向
    4
    1991年初出で、今もなお分野の⼀課題として研究が⾏われている
    ワークショップやデータセットが作られている
    2007年 2018年
    ⼿法の移り変わり
    経験則に基づくルール

    特徴量に基づく統計的機械学習
    ニューラルネットワークの利⽤

    ⼊⼒の変化(⽂字ベースの登場)
    対象テキスト ニュース
    ニュース
    SNS
    医療
    ⽣物学
    評価⼿法 Precision, Recall, F1 Precision, Recall, F1
    各年代のサーベイでの⾔及

    View Slide

  6. Data Strategy and Operation Center
    固有表現抽出に取り組む上での課題
    5
    辞書とルールで頑張る?
    辞書とルールにないととれない
    辞書とルールはセットで効いてくるので意外と運⽤が難しい
    ⽂脈を規則で対処するのは難しい
    機械学習で頑張る?
    学習データの構築が難しい
    なんか間違えるけど、どうしよう(モデルの改善?データの改善?)
    全体を通しての難しさ
    ドメイン変わると精度下がる
    Sansan株式会社 が提供する名刺管理サービス Sansan では、・・・
    組織名 組織名
    企業名辞書の例
    Sansan株式会社
    株式会社提供
    ・・・
    学習データの例
    Sansan B-企業
    株式会社 I-企業
    が O
    ・・・ ・・・

    View Slide

  7. Data Strategy and Operation Center
    固有表現抽出の⼿法
    6
    ルールベース
    辞書や規則により、固有表現を抽出する
    教師あり学習
    正例と負例を与えて、固有表現かどうかを判定させる
    隠れマルコフモデルや決定⽊、SVM、CRFなど
    半教師あり学習
    ⼤量のアノテーションデータが必要な教師あり学習の問題点に向き合う
    ブートストラッピング
    教師なし学習
    WordNetの固有表現と似た⽂脈の語を取得
    ニュースコーパスの特性を使って、ある時期に頻出する単語を推定

    View Slide

  8. 実務での固有表現抽出事例

    View Slide

  9. Data Strategy and Operation Center
    企業の動向をお知らせするための固有表現抽出

    View Slide

  10. Data Strategy and Operation Center
    企業の動向をお知らせするための固有表現抽出
    記事から固有表現抽出器により取得した
    企業名をキーとして利⽤し配信を実現

    View Slide

  11. Data Strategy and Operation Center
    ハイブリッド⽅式による固有表現抽出
    ルールベースと深層学習による⽅式の組み合わせ
    ニュース配信における各⽅式のざっくりとした⽬的
    • ルールベース
    • 確実に企業名と思われる⽂字列を抽出
    • 深層学習
    • ⽂脈から企業名らしいものを抽出

    View Slide

  12. Data Strategy and Operation Center
    ルールベースの企業名抽出器
    ※闇雲に企業名を追加しても、うまくいかない:髙橋 寛治, 奥⽥ 裕樹. 辞書に基づく組織名抽出における辞書整備の影響. ⾔語処理学会 第26回年次⼤会
    発表論⽂集, pp.1245-1248
    確実に企業名と思われる⽂字列を抽出するために、辞書作りを⼯夫
    ⽅法
    1. 全組織名をリストに持つ
    2. 名刺交換枚数が⼀定以上の組織の正式組織名を辞書に追加
    • スコアは⽂字数に応じて変更
    3. 再現率をあげるために、組織名から法⼈格を削除し、次の条件に合致するものを
    辞書に追加
    • 3⽂字以上
    • 数字だけで構成されない
    • 形態素解析辞書の⼀般名詞と同じ⽂字列ではない

    View Slide

  13. Data Strategy and Operation Center
    辞書に基づく組織名抽出における辞書整備の影響
    ⾼橋 寛治, 奥⽥ 裕樹 (Sansan株式会社 DSOC)

    View Slide

  14. Data Strategy and Operation Center
    深層学習による固有表現抽出
    ⽅針としては、BERT の事前学習モデルを fine tuning する
    具体的には、⼊⼒されたトークン列に対して、それぞれにクラス分類を⾏う
    以前は Bidirectional LSTM-CNNs-CRF(Ma et al. 2016) を利⽤
    コード例は、ブログに書いていますので、Sansan Builders Blog で BERT と検索してみてください
    IOB2(Inside-outside-beggining) という表現を利⽤
    • B:固有表現の先頭
    • I :2トークン以上で構成される固有表現の先頭以外の単語
    • O:固有表現以外のトークン
    B, I に固有表現の種類(組織、⼈名など)を組み合わせて、ひとつのクラスを表現
    ⼊⼒ 名刺 管理 サービス の Sansan 株式会社 が
    出⼒ O O O O B I O

    View Slide

  15. Data Strategy and Operation Center
    データの作成
    1. 固有表現の種類を定義
    • 例:会社名、⼈名、⽇付
    2. アノテーションマニュアルの作成
    • 種類⼀覧や例を載せる
    3. アノテーション
    • 最初は⼗数件⾏い、不明瞭な点を洗い出し、明確にしておく
    • ある程度割り切りは必要
    • まずは1,000⽂くらいアノテーションして、試しに学習
    4. データ整形・分割
    • Train, Dev, Test に分けるときには、⽂単位でランダムよりかは⽂書単位でランダムがいいと思う

    View Slide

  16. Data Strategy and Operation Center
    アノテーション例
    表層形 IOB2 種類
    BOS
    Sansan B 企業名
    株式 I 企業名
    会社 I 企業名
    は O
    、 O
    サンサン B ⼈名
    太郎 I ⼈名
    が O
    、 O
    ・・・

    View Slide

  17. Data Strategy and Operation Center
    サービス提供⽔準にするために
    抽出結果から除外するリストをメンテナンスしやすいようにしておく
    • メンテナンスの例
    • 「コロナ」や「COVID-19」が誤判定されやすかったため、ブラックリストに追加
    Ø 株式会社コロナさまが誤配信されてしまう
    • データの追加よりはルールが適⽤は簡単
    • コードのイメージ
    • 前処理や後処理は、オブジェクトとして注⼊する形式にする
    def ner_factory():
    ner = NERService()
    ner.add_preprocessor(UnicodeNormalizer())
    ner.add_postprocessor(StopOrganizationFilter())
    logger.debug(ner.get_steps())
    return ner

    View Slide

  18. 固有表現抽出器を作ろう

    View Slide

  19. Data Strategy and Operation Center
    実務で使う固有表現抽出の超簡略化した個⼈的フローチャート
    ※実際には「うまくいく」によって臨機応変に対応する(新しい単語が増えるか、再現率⾼い⽅がいい、処理が⾼速など)
    ※辞書やデータを増やした際に、性能が改善されるか確認する
    検討開始
    辞書が
    ある
    辞書+ルール
    でうまくいく
    CRF系で
    うまくいく
    BERTで
    うまくいく
    辞書を作る
    運⽤検討
    タグ付きコーパスを
    作る
    運⽤検討 運⽤検討
    ない
    ある
    うまくいく
    厳しい
    うまくいく
    厳しい
    うまくいく
    厳しい
    路頭に
    迷える!
    (≒研究)
    実際、⼀筋縄ではいかない

    View Slide

  20. Data Strategy and Operation Center
    データセットと⽇本語固有表現抽出器を作りましょう
    去年から個⼈的に作りたいと思っていた商⽤利⽤可能なデータセットと
    ⽇本語固有表現抽出器
    ⽇本語固有表現抽出器:OneNER(ワン エヌイーアール)
    CRFベースの軽量バージョン(light)
    BERTベースの通常バージョン
    データセット
    Wikipediaのテキストに対してタグ付けを⾏う
    BNL(Business Network Lab)のテキストに対してタグ付けを⾏う
    GitHub
    準備中です・・・(https://github.com/sansan-inc/OneNER)
    Twitter(@SansanDSOC) で告知されると思います
    $ echo “Sansan株式会社が提供する・・・” | onener-cli -m models/hoge-model
    Sans B-ORGANIZATION
    an I-ORGANIZATION
    ・・・

    View Slide

  21. Data Strategy and Operation Center
    まとめ
    実務で使う固有表現抽出について紹介
    • 固有表現抽出の概要
    • Sansan ニュース配信で利⽤している固有表現抽出技術
    • サービス提供⽔準にする上での実務上での⼯夫
    • 固有表現抽出器を作ろう
    • 個⼈的フローチャート
    • データセットと⽇本語固有表現抽出器

    View Slide

  22. Data Strategy and Operation Center
    参考資料
    Nadeau, David and Sekine, Satoshi. A survey of named entity recognition
    and classification. Linguisticae Investigationes, Vol. 30 , No. 1, pp.3-26,
    2007.
    Yadav, Vikas and Steven Bethard. A Survey on Recent Advances in Named
    Entity Recognition from Deep Learning models. COLING, pp.2145-2158,
    2018.
    岩倉 友哉, 関根 聡. 実践・⾃然⾔語処理シリーズ 第4巻 情報抽出・固有表
    現抽出のための基礎知識

    View Slide

  23. View Slide