機械学習を使って30分で固有表現抽出器を作る

はじめに
固有表現抽出は、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を抽出する技術です。固有表現抽出は、質問応答システム、対話システム、情報抽出といった自然言語処理を用いた応用アプリケーションの要素技術としても使われています。
今回は機械学習技術を使って固有表現抽出器を作ってみます。
※注意事項
理論的な話は一切出てきません。理論を知りたい方は他を当たってください。

対象読者

固有表現抽出を少しは知っている方
固有表現抽出器を作ってみたい方
Pythonコードを読める方

固有表現抽出とは?
ここでは、固有表現抽出の概要と方法について説明します。

概要
固有表現抽出は、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を抽出する技術です。具体例を見てみましょう。以下の文から固有表現を抽出してみます。

太郎は5月18日の朝9時に花子に会いに行った。

上記の文に含まれる固有表現を抽出すると人名として太郎と花子、日付として5月18日、時間として朝9時が抽出できます。
上記の例では固有表現のクラスとして人名、日付、時間が抽出されました。一般的には以下の8つのクラスがよく使われます。

クラス

ART 固有物名 
ノーベル文学賞、Windows7

LOC 地名
アメリカ、千葉県

ORG 組織
自民党、NHK  

PSN 人名
安倍晋三、メルケル   

DAT 日付
1月29日、2016/01/29   

TIM 時間
午後三時、10:30

MNY 金額
241円、8ドル  

PNT 割合
10%、3割   

方法
固有表現抽出を行う方法として、形態素解析済みの文に対してラベル付けを行う方法があります。以下は「太郎は5月18日の朝9時に・・・」という文を形態素解析してからラベル付けを行った例です。

B-XXX、I-XXX というラベルがこれらの文字列が固有表現であることを表現しています。B-XXX は固有表現文字列の始まり、I-XXX は固有表現文字列が続いていることを意味しています。XXX 部分にはORG、PSN などの固有表現クラスが入ります。固有表現でない部分には O というラベルが付与されます。
ラベル付けは規則を用いて行うこと…この記事の続きを読む

サイト名: Qiita - Python

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.