🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

630閲覧

日本語の自然言語処理に関して

YuuT

総合スコア673

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

1クリップ

投稿2019/10/12 05:34

編集2019/10/12 05:41

自然言語処理初学者です。
機械学習の分野から自然言語処理を学ぼうとした際、よくわからない部分があったので、質問致します。
疑問点が複数ありますので、答えられるものがあれば回答をお願いします。

元々、プログラミングはできるので、Pythonを使用して文章分類や要約をする事から自然言語処理に足を踏み入れました。

例えば、文章分類や要約をする際、流れとしては
・形態素解析→単語のベクトル化→学習器による学習(分類)又は、アルゴリズムによる重要度決定(要約)
といった流れで行います。
(上記の処理はライブラリに頼っています)

しかし、自然言語処理の学習をしたところ、日本語の処理の流れは以下の様に行うのが一般的なようです。
・形態素解析→構文解析→意味解析→文脈解析

単純に日本語の自然言語処理の流れと、文章分類の流れを組み合わせた場合、
・形態素解析→構文解析→意味解析→文脈解析→ベクトル化→学習器による学習
といった流れになるのがよさそうな印象を受けるのですが、ネット上にある機械学習の記事では、形態素解析した単語をベクトル化して分類している物しか見つかりませんでした。

このような状況のなか、いくつか知りたいことが出てきました。

  • 文脈解析をふまえた結果をベクトル化するのが難しいので、形態素解析をして単語同士の関係をベクトル化しているのか?それとも、知らない間にライブラリで文脈解析までされているのか?
  • 自然言語処理系のライブラリは英語圏で作成されたものなので、日本語の構文解析→意味解析→文脈解析は行わないのか?(それなら、出回っているライブラリを使用しても日本語の制度は期待できないのか?)
  • 形態素解析をした情報を機械学習に応用する方法は、文章分類を行っているのでイメージできるが、構文解析、意味解析、文脈解析をした結果を機械学習に利用する事(ベクトル化する事)は可能なのか?
  • 構文解析、意味解析、文脈解析の結果はどのように使用されるのか?(検索エンジン?音声認識?)
  • 英語にも構文解析や意味解析、文脈解析は必要に思えるが、なぜ左の解析は日本語独特のものとして扱われるのか?
  • 自身が実現したいことは、文章分類や要約を上手く行うことなので、構文解析、意味解析、文脈解析の部分は意識しなくてもよいのか?
  • 達成したい用途によってどこまで解析を行うのか判断する必要があるのか?
    • 例)文章を分類したい→単語同士の関係に着目すると精度が出そう→形態素解析の結果をベクトル化
    • 例)1文から重要な単語を抽出したい→文脈を理解することで、重要な単語を取り出すとよさそう→文脈解析を行う

質問は以上です。
回答お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問が多すぎて答えられないので、雑多に思ったことを書いておきます。

  • 構文解析から上は技術として確立していません。アドホックにできなくはないけど性能は良くないとか。未だに「研究中」だと考えてください(ちなみに形態素解析にも課題は残っているといえば残っています。他よりはだいぶマシというだけで)
  • たとえば文書分類であれば、形態素解析までできていれば(しかもBoW表現みたいな単純なものを使っても)多くのケースでは十分、ということがよく知られています。
  • 近年は、深層学習に突っ込めば「技術として確立していない」部分をかってにモデルがやってくれるのでは? という期待のもとそういう方法論が開発されています。これがそこそこ上手く行っていて、意味解析や文脈解析がないとできないと思われていたようなタスクが成功するようになっているので(機械翻訳とか)、当面の間一番期待できるのはそれ、というコンセンサスがあります。
  • 形態素解析→構文解析→意味解析→文脈解析という流れははるか昔(それこそベクトル表現などが考えられる前から)に提案されたものなので、昨今の流れにはそぐわない一面もあります。逆に言えば、prologで処理していた時代には形態素解析→構文解析→意味解析→文脈解析→ベクトル化→学習器による学習という発想はたぶんなかったでしょう。
  • もちろんちゃんと解析できるに越したことはないのですが、技術が追いつかないので解析しなくても良い方向に進化してきたのが今のNLPという見方もできます(甚だしきはchar-levelで処理したりとか。形態素解析すらやらない)。

投稿2019/10/12 05:59

hayataka2049

総合スコア30935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YuuT

2019/10/12 06:09

早速の回答ありがとうございます。 まだ自然言語処理はベストプラクティスが見つかっていないということですね。(ざっくりとした理解ですみません) > 近年は、深層学習に突っ込めば「技術として確立していない」部分をかってにモデルがやってくれるのでは? という期待のもとそういう方法論が開発されています。これがそこそこ上手く行っていて、意味解析や文脈解析がないとできないと思われていたようなタスクが成功するようになっているので(機械翻訳とか)、当面の間一番期待できるのはそれ、というコンセンサスがあります。 最近だとGoogleのBERTなんかがこれにあたるのでしょうか。目的によって色々なベクトル化がある中で、BERTで前処理をすれば複数の分野でいい精度が出るところの利点がわかった気がします。 自分は、機械学習を活用する側としてどこまで深く学ぶべきか迷っていますが、自然言語の基礎程度の知識は持ちつつ必要になった時に深堀していくのがよさそうな印象を受けました。
hayataka2049

2019/10/12 14:49

専門でやるのでなければ、どんなのがあるのかを知っておく程度でもいいです。自然言語処理ってとても大きなくくりなので(「画像処理」くらいのくくりで、しかも方法論は下手したら画像より色々ある)、「自然言語処理をマスターする」のはたぶん無理です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問