質問: ### 前提・実現したいこと プログラミング始めて1ヶ月程で、progateを中心に手探りで勉強しています。まだ趣味の範疇です。 とりあえずアウトプットとして、英語の文型(SVOC)を自動判別するプログラムを作りたいと考えています。 そこで以下質問です。 ・使用言語はpythonで考えているが、問題ないか(機械学習やディープラーニングに興味があるため選択) ・初学者が独学で取り組むにはハードルが高過ぎないか ・おすすめの言語処理ツール(tree tagger,NLTKなど) (・その他学習に役立つサイトや書籍、勉強会等) 右も左も分からず質問が成り立っているのかすら心配ですが、どなたかご回答のほどよろしくお願い申し上げます。
回答: progateでどんなことをやっているのかわからないので、適当に自然言語処理の入門として書きますが・・・。 > > 使用言語はpythonで考えているが、問題ないか(機械学習やディープラーニングに興味があるため選択) > > > 問題ありません。2018年現在においてはベストな選択でしょう。 > > 初学者が独学で取り組むにはハードルが高過ぎないか > > > 高いと思います。構文解析がややこしいです(ライブラリに投げるだけとも言いますが、使いこなすのがまた面倒くさいです)。ルールベースで文型を判定するのも面倒です。 もしかしたら既存のものがあるかもしれませんが、そしたらアウトプットとして面白くないでしょうし。 とりあえず文書から特徴語や特徴的な表現を抽出するみたいなネタとか、文書分類(スパム分類やニュースのカテゴリ判定など)あたりで遊んでみては? > > おすすめの言語処理ツール(tree tagger,NLTKなど) > > > 英語でそういう解析(構文とかPOSタグとかいじるの)をやるなら事実上ほぼnltk一択です。nltkから色々なものを呼べるので、かなり便利です。ただし、nltkですべて完結するかはまた別です。 統計的言語処理チックにやるならgensimとか色々あります(LDAやword2vecなんかが使えます)。あとは機械学習使うと思うので、scikit-learnとか入れましょう。深層学習は当分手を出さなくて良いと思います(それよりコンベンショナルな機械学習を先に理解しないと辛いと思います)。 > > その他学習に役立つサイトや書籍、勉強会等 > > > 自然言語処理というテーマでまとまったサイトは日本語圏には(私の知る限り)ありません。書籍は色々あると思いますが、新しめで十分網羅的で入門書的なものはない印象です(一昔前なら「入門自然言語処理」という本がありましたが、さすがにもう古いと思います)。タイトルが良さそうなものを片っ端から読んでいくしかないです。 勉強会は行かないので知りません。ごめんなさい。