ゆるオタクの生活改善メモ帳

仕事メモとライフハック。あらゆるものを効率化してダラダラする時間を増やしたい。

日本語における自然言語処理とは何か。非エンジニア向けにまとめてみたよ

お客さんようにまとめてる日本語における自然言語処理とは何ぞやのメモ。
AI(DeepLearing)でなんでもできるんでしょ?っていう方向け に費用対効果考えたらそんな便利なもんじゃねえよっていう資料用です。

日本語における自然言語処理

自然言語とは?

人間が書いたり話したりする言語のことです。コンピュータ言語と違い曖昧な言語です。そこが処理の難しさにつながります。

コーパス、辞書とは?

自然言語処理を行うための元となる言語資源です。

コーパス 統計学的な手法での分析(機械学習の教師データ)として利用します。元ネタは新聞だったりwikipadiaだったり。
具体例はこちらの記事がまとまっています。

qiita.com

辞書 とは各解析の元となるものです。形態素用辞書や評判解析に利用する日本語評価極性辞書等があります。 例えば形態素解析ツールのmecab形態素用辞書だと以下のフォーマットでデータが登録されています。 1

表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音

自然言語処理の流れ

ビジネスにどのように応用したいかによって流れは変わるかと思いますが、ベースは単語の解析→文章の解析です。

f:id:sasamm:20180323151242p:plain

1.形態素解析

形態素解析とは?

単語分割と品詞タグ付けを行うことです。

  • 単語分割:日本語の場合、英語等の言語とは違い、単語間が区切られていないので単語を区切る必要があります。そのため文章を単語に分割します。
  • 品詞タグ付け:分割した単語に対し名詞、動詞などの品詞を付与します。

形態素解析ツール

MecabやJUMAN、深層学習を利用したJUMAN++等があります。
具体的な比較についてはNLP2018ベースの以下の記事が参考になります。

mecab実行例

イケメンは世界の宝です。
イケメン        名詞,一般,*,*,*,*,*
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
世界    名詞,一般,*,*,*,*,世界,セカイ,セカイ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
宝      名詞,一般,*,*,*,*,宝,タカラ,タカラ
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。      記号,句点,*,*,*,*,。,。,。

誤字の間違いや、固有名詞の特定等、単語自体の処理については形態素解析の前処理や、形態素解析結果をインプットとした処理として行います。 単語周りの前処理の実例や流れはこちらの記事が参考になります。

qiita.com

形態素解析ツールSudachiが前処理系を包括してるそうなので、どれくらい利用できるか試してみたいところ

2.単語意味解析

単語の意味解析とは?

言葉の意味を定義したり、同義語や多義語の語義曖昧性の解消することです。

  • 同義語:ひらがな表記、カタカナ表記、漢字表記や送り仮名の違いなどの表記の異なりや英語表記と日本語表記などの異なる語による表記揺れ
  • 多義語:表記や音が同じだけど意味がことなる語

単語意味解析ツール

語義曖昧性解消のツールはない様子です。

同義語を寄せたり、多義語解消にはシソーラスという意味の上位下位関係、同義語関係をまとめた辞書を利用できるらしい 未検証のためビジネス要件に耐えうるかは検証が必要です。日本語のシソーラスは以下があります。(無料のもののみ)

文脈が似ている語は類似しているという分布類似という考えから同義語を寄せるというということも可能らしい 同義語の寄せは、単語ベクトルを用いたfasttextで類似度だしてやってみるのもありかと思います。 参考文献↓ qiita.com

3.構文解析係り受け解析)

構文解析とは?

文章中の単語間の係り先(主辞)と係り元(修飾語・句)を特定することです。

構文解析ツール

形態素解析機/構文解析機のセットでMecab/Chaboca、JUMAN/KNP、KeyTea/Edaなどがあります。

cabocha実行例

[ec2-user@ipXXXXXX ~]$ cabocha -f1
美しいイケメンは世界の宝です。
* 0 1D 0/0 1.502718
美しい  形容詞,自立,*,*,形容詞・イ段,基本形,美しい,ウツクシイ,ウツクシイ
* 1 3D 0/1 -1.455313
イケメン        名詞,一般,*,*,*,*,*
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 2 3D 0/1 -1.455313
世界    名詞,一般,*,*,*,*,世界,セカイ,セカイ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
* 3 -1D 0/1 0.000000
宝      名詞,一般,*,*,*,*,宝,タカラ,タカラ
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。      記号,句点,*,*,*,*,。,。,。
EOS

修飾の係り先と係り元がわかるため、例えば日本語評価極性辞書を利用し、形容詞がポジティブなものかネガティブなものかを判別し、形容詞がかかる名詞に対する評判を分析することができます。

4.文章意味解析

文章意味解析とは?

5W1H誰がどこでいつ、どうやって何をしたかという形を表現します。

文章意味解析ツール

「だれガなにヲする」のガ格とヲ格が特定できる格解析ツールとしてKNPが利用できます。 他の述語項構造解析ツールとしてはSynCha、ChaPASがあります。

KNP実行例

[ec2-user@XXXXXX]$ echo "美しいイケメンはコーヒーを買って飲んだ。"| juman | knp -simple -anaphora
# S-ID:1 KNP:4.19-CF1.1 DATE:2018/03/26 SCORE:-44.51285
* 1D <用言:形>
+ 1D <用言:形><EID:0><項構造:ガ/イケメン/1>
美しい うつくしい 美しい 形容詞 3 * 0 イ形容詞イ段 19 基本形 2 "代表表記:美しい/うつくしい 反義:形容詞:醜い/みにくい"
* 4D <体言>
+ 4D <体言><EID:1>
イケメン イケメン イケメン 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipedia上位語:俗語/ぞくご 疑似代表表記 代表表記:イケメン/イケメン"
は は は 助詞 9 副助詞 2 * 0 * 0 NIL
* 4D <体言>
+ 4D <体言><EID:2>
コーヒー こーひー コーヒー 名詞 6 普通名詞 1 * 0 * 0 "代表表記:珈琲/こーひー カテゴリ:人工物-食べ物 ドメイン:料理・食事"
を を を 助詞 9 格助詞 1 * 0 * 0 NIL
* 4D <用言:動>
+ 4D <用言:動><EID:3><項構造:ガ/イケメン/1;ヲ/コーヒー/2>
買って かって 買う 動詞 2 * 0 子音動詞ワ行 12 タ系連用テ形 14 "代表表記:買う/かう ドメイン:家庭・暮らし;ビジネス 反義:動詞:売る/うる"
* -1D <用言:動>
+ -1D <用言:動><EID:4><項構造:ガ/イケメン/1;ヲ/コーヒー/2>
飲んだ のんだ 飲む 動詞 2 * 0 子音動詞マ行 9 タ形 10 "代表表記:飲む/のむ ドメイン:料理・食事"
。 。 。 特殊 1 句点 1 * 0 * 0 NIL
EOS

5. 文脈解析

基本まだ実用化は難しいのでどんな解析があるかをキーワードのみです。詳しくは参考文献を見てください。

  • 照応解析
  • 談話構造解析

言いたいこと

まずAI(機械学習)って言っても自然言語処理やら画像解析やら各研究分野があって、その手法としてあるのであってその分野知らないのにAIがどうにかしてくれるって訳ないでしょ...
現時点でのAI()への夢は捨てましょう。まずは業務フロー整理。AI導入の前にやれることは沢山あります。

参考文献

qiita.com

自然言語処理の基本と技術

自然言語処理の基本と技術

自然言語処理 (放送大学教材)

自然言語処理 (放送大学教材)

自然言語処理の基礎

自然言語処理の基礎

構文解析 (自然言語処理シリーズ)

構文解析 (自然言語処理シリーズ)

文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ)

文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ)