Stanford大学の自然言語処理講座(1-2)正規表現



基礎的な言語処理~正規表現について~

日本全国の自然言語処理ファンのみなさま、お待たせいたしました。Stanford大学の自然言語処理の授業がコンパクトにまとまったcourseraを使って、無料で勉強しましょうシリーズ、第二弾です。

https://class.coursera.org/nlp/lecture/preview

今回の授業テーマはご存知「正規表現」。
文字列の指定方法です。基本的なものですが、復習がてら勉強していきましょう。

正規表現とは。

例えば下の4つ。同じ”woodchuck(リス)”を指しています。 複数・単数、大文字・小文字がいろいろ混じっています。これらを一括で指定したいときに正規表現を使うと便利です。下記の4つなら [Ww]oodchucks? と書けば、4つともが選択されるという非常に便利なものです。
woodchuck
woodchucks
Woodchuck
Woodchucks

では、具体的にどのような種類があるか見てみましょう。

①正規表現:分離

・カッコ内のいずれか[]

②正規表現:範囲

③正規表現:分離の中の否定

④正規表現:さらに分離

⑤正規表現:  ? * + .

⑥正規表現:  アンカー ^  $

(一致する箇所は赤字)

とここまでさらりと述べましたが、どういう文章にどう当てはまるのか具体的に見てみましょう。

具体例

例えば、下の文章から冠詞のthe(ザ)を抜き出したいとしましょう。

The Cat in the Hat! The other one there,the blithe one.

theと指定すると、黄色の文字の箇所が抜き出されます。

The Cat in the Hat! The other one there, the blithe one.

しかし、大文字始まりのTheが抜き出されていません。そこで正規表現を使って [Tt]he と指定します。すると

正規表現で指定:[Tt]he

The Cat in the Hat! The other one there, the blithe one.

Theも無事抜き出されました!でも、よく見ると冠詞のthe以外に、otherやthereのようにtheが含まれている箇所も抜き出されています。そこで、[Tt]he の前や後ろがアルファベットでない、という風に指定します。

正規表現で指定:[^A-Za-z][Tt]he[^A-Za-z]

The Cat in the Hat! The other one there, the blithe one.

無事、冠詞の「the」だけが抜き出されました。

正規表現のエラー

先ほど見たように、正規表現で指定しても、自分の思った箇所がすぐに抜き出されるというワケではありません。具体的には、この2種類のエラーが起こります。

・当てはまってほしくないところにも当てはまる。偽陽性(第一種の誤り)
例)other there が抜き出されてしまった。
・当てはまってほしいところに当てはまらない。偽陰性(第二種の誤り)
例)theは選択されたがTheが選択されない。

自然言語処理では、この誤りを減らすために2つの相反する努力を行なっています。
その2つの方法とは

・確からしさ、精度を上げる(擬陽性を減らす)
・カバー率 や リコールを増やす(偽陰性を減らす)

こうやって日々の積み重ねの技術を重ねているのです。

まとめ

・正規表現は驚くほど大きな役割を果たしています。正規表現の高度な数列は言語処理教科書の最初のモデルです。
・難しい課題を解くためには、機械学習分類器を使います。

最後に先生から一言。”正規表現は基礎の基礎ですからね。何度も正規表現に戻ってきてください。”とのことです。

正規表現なんて基本的ねと思っていましたが、基本だからこそ大切なのですね。

次回からの講義にもご期待ください。


This entry was posted in 自然言語処理(NLP) and tagged , , . Bookmark the permalink.