Pythonと数学と音楽とetcの落書き帳

かなりテキトーに、断片的に離散的にプログラミングや、音楽やいろいろなことを書いていく。洋楽のレビューのついでにPythonその他のブログや本のノート、備忘録を書いていきます。

自然言語処理をはじめる。Twitterの鍵なしアカウントを勝手に分析する!By wordcloud

こんにちは。

ブログを書こうと、まあ昨日こんな記事を読みまして。
「もっと早くからやっておけばよかった」と後悔している、いくつかのこと。 | Books&Apps
テキトーにはじめようと思った次第です。
デュアルディスプレイにするのと、起業するのが同じところに並んでていいですね。
ディスプレイを増やすノリで起業します。
ちなみに僕はデュアルディスプレイでした、この記事を読んだ後もう一つ増やしてクアッドディスプレイになりました。


前々から書きたい欲はありつつも、
Django でブログ作るんだ!はてなとか、Livedoorとかじゃやらないぞ!みたいな意地をはって、データベースのクエリがなんだかわからなくて、Django girls Tutorialでハマって断念していたんです。
インターネットはどうやって動いているの? · workshop_tutorialJP
良いチュートリアルと評判ですが、僕の環境だとけっこーハマるところが多かったです。

なんかそれくらいはできるようになりたいと思いつつも基本独学なので、もう少し時間かかりそうだなと、まあ春休みにもう何回かアタックするのと、Word pressも一回やってみようと思います。



今AIソリューションを提供する会社でバイトしてるんですが、最近はAI以前の組合せ最適化のPythonライブラリ 
Google ortools
developers.google.com
を使ってフランケンシュタイン作っていたんですが、
あんまりうまく行かなかったので、もう少しAI寄りのところに戻って自然言語処理関連のタスクが回ってきました。

自然言語処理(Natural Language Processing)は、僕も最近初めて知った言葉なんですが、プログラミング言語機械語も)を人工言語として、
自然発生した言語っていう定義で僕らが使う日常語(日本語、English、etc)を、分解して、統計使って解析しよう的な分野らしいです。

言語を分解するにはまず最小の単位である単語に分けなければいけないんですが、Englishは、
I say helloのように単語間にBlankがあるのでスプリットしてやれば単語までの分解は余裕です。

が、日本語だと見ての通り単語同士に境界がなく

すもももももももものうち

とか見たらすぐわかりますが、単純にSplitできません

ので、とりあえず切り取れる何通りかで切り取って、
単語空間に距離を導入して、隣接する単語の位置が近いような文章を本来の意味解釈の仕方にしよう!
っていうのが日本語の意味の取り方、なのかな??
ちょっとまだわかんないけど、
距離を取って意味を分析するというところは、下記ブログがわかりやすかったので載せます。
www.randpy.tokyo

もう少し勉強をこんな感じの本でします。

自然言語処理の基礎

自然言語処理の基礎


さて、とりあえず意味の距離はおいといて、
とりあえず既存のライブラリを使って面白そうなものを動かすところから初めようと。
「OK word2vec ! "マジ卍"の意味を教えて」 Twitterデータからword2vec実践してみた - これで無理なら諦めて!世界一やさしいデータ分析教室
同じ人のコードを動かしてみました。
文字コード等自分の環境に合わせば動きますが、

Twitter公式からAPIキーをもらって、
Jsonファイルに記入してコード外からもってきて動かしました。

解説はできないので、ソースコード上記サイトを見てください。(白目)

janomeっていうPython自然言語処理のライブラリを使っているんですが、
MeCab触ってて、動かしたのが前なのでそれすら解説できないのと、
Beautifulsoupもよくわかっていないでコピペで動かしたので、とりあえずそれらのライブラリは、

PythonとJavaScriptではじめるデータビジュアライゼーション

PythonとJavaScriptではじめるデータビジュアライゼーション

こっちの本を読み進めた時に詳しくみます!!

僕はインターレスGIF方式で勉強します!
厳密な解説は、また今度です!
成長過程を残したいからブログするから、多少はね!