Stanford大学の自然言語処理講義(1-4) - Word Tokenization(単語のトークン化)


久保です。

自然言語処理のStanford大学の講座シリーズの続きです。

今回は『Word Tokenization』ということで、単語をtokenization(トークン化)します。
重要な用語や定義が頻出します。

講義の映像は下記から見られます。
Word Tokenization (14:26)

Text Normalization

自然言語処理タスクでは、以下のようにテキストの正規化が必要になります。

  1. テキストを単語に分割する。
  2. 単語の形式(複数形や単数形、過去形や進行形など)を正規化する
  3. 文章を文に分ける

これが文章を解析する基本的な流れになります。

How many words?(1/3)

I do un main- mainly buisiness data processing

のword数は?という質問です。

これは発声された文章なので、mainlyと言おうとして言いよどんだ「main」や日本語でいう「あー」に近い「un」が含まれています。
音声合成や音声認識、音声訂正のタスクの場合には、こういった単語も重要になってくるわけですね。

How many words?(2/3)

今度は

Seuss's cat in the hat is different from other cats!

という文が取り挙げられます。
ここでcatとcatsは、同じ語幹(stem)、品詞、大まかに同じ意味を持つことから、同一のlemmaを持ちます。

lemmaとは単語の見出し語であり、基本形/活用形の動詞や、複数形/単数形の名詞などを、同一とみなすことができます。
それらを同一として扱うべきタスクでは、このlemmaが重要になります。
一方見出し語化しない元のcat/catsはWordformと言います。

続いては

they lay back on the San Fransisco grass and looked at the stars and their

という文です。
さて、この文のTypeとTokenはそれぞれいくつでしょうか?

Typeとは、要するに文中のユニークな単語数なので、異なり語ということです。
一方Tokenは文中の延べ語数を表しています。
当然

N(Type) <= N(Token)

になります。
したがって、先ほどの例文中のN(Token)は15です。
一方N(Type)は、theとandがそれぞれ2 Tokenあることから、13になります。

またもしtheyとtheirは同一のlemmaを持つので同一視する、という場合にはより少なくなります。
そうすべきかどうかは、タスクに依存します。

How many words?(3/3)

ここではNをtokenの数、Vをtypeの数と定義し、データセット(コーパス)のNとVがどの程度か、という説明があります。
シェイクスピアの作品(全部?)においては、N=884,000、V=31,000とのことです。

続いてUnix toolを使ってシェイクスピアの作品を実際に分析しています。

tr ‘A-Z’ ‘a-z’ < shakes.txt | tr -sc ‘A-Za-z’ ‘\n’ | sort | uniq -c | sort -n -r

このようなコマンドをいくつかパイプで繋ぐだけで、頻度の高い単語を簡単に抽出し、ランキングできます。

ただし日本語の場合には、trコマンドで簡単に単語を取り出すことはできません。
通常は形態素解析器を使います。

Issue in Tokenization

Tokenizeのプロセスでは、特にどのような単語を同一とみなすか、という論点が発生します。

例えば

  • FinlandとFinland's
  • what'reとwhat are
  • Hewlett-PackardとHewlett Packard

などです。
これは面倒な問題ですが、自然言語処理を行う上では避けては通れない問題です。
同一と見なすべきかどうかは一概には言えず、やはりタスクに依存します。

Tokenization: language issues/Word Tokenization in Chinese

ドイツ語にはとても長い複合単語

Lebensversicherungsgesellschaftsangestellter

があり、これを「compound splitter(複合語スプリッター)」というもので分割します。
中国語では単語の区切りが分からないので、例えばMaximum Matchingというアルゴリズムを用い、先頭から辞書の単語と最長一致する部分で単語を取り出していきます。

各国ごとに固有の問題があるのも、自然言語処理の面倒な部分ですね。

感想

今回はより本格的な自然言語処理の始まりの回です。
基本的な用語の定義から、よく発生する論点まで、どれも大事な内容でした。
また、最初に簡単にテキストの統計を取って傾向を見るのはとても重要です。

さて、次回の講義は『Word Normalization and Stemming』、単語の正規化(Normalization)と語幹化(Stemming)です。
Word Normalization and Stemming (11:47)


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