毎日テキストマイニング

180日間、毎日テキストマイニングをするブログです

180日間テキストマイニング

2018/8/25【63日目】マルコフ連鎖で文章を作ってみる

気を取り直して、今日は文章を機械的に作成していきたいと思います。 『ゼロから作るDeep Learning 2 自然言語処理編』に書いてありましたが、テキスト生成にはマルコフ連鎖というのを使うみたいです。 マルコフ連鎖とは マルコフ連鎖とは、現在の状況のみに…

2018/8/24【62日目】ついに共起ネットワークの図が垣間見れた

1週間ほど迷走をしていましたが、昨日、お金を払ってKH Corderを導入いたしました。 これでついに、共起ネットワークができると思います。それではやっていきます。 KH Corderのセットアップ サポートページからzipファイルをダウンロードして、数回クリック…

2018/8/23【61日目】グラフ理論について学ぶ

うーん、どうもNetworkXの全貌が全くわからないので座学することにしました。 (なかなか脱線しますね) こういったグラフを描くためのグラフ理論というのがあるんですね。 グラフ理論 もともとグラフは物と物の関係を表す数学分野の1つ、 数学的にグラフ(G…

2018/8/22【60日目】NetworkXで言語を処理してみる

とりあえずの画像の出し方と、仕組み自体はわかりましたので、自然言語を使って実戦していきます。 さいきん終電帰りが多く、内容は軽めです。 実践 まずはNetworkXとMatplotlibのimportです。 あと、グラフの作成。 import networkx as nx import matplotli…

2018/8/21【59日目】NetworkXに触れてみる その2

昨日からの続きです。ぶっちゃけて言いますと、NetworkXについて全くわからず書いてています。そのまま続きをやっていきます。 nodeに数値を入れる意味がわからないいまま続けていきます。 ノードには変数も代入できるようです。 H = nx.path_graph(10) G.ad…

2018/8/20【58日目】そろそろNetworkXに触れてみる

共起ネットワークの話が出てきましたので、そろそろ可視化の勉強をしていきたいと思います。手軽に画像を作るのならKH Coderがいい、という記事を見たのですが、インストールするものが多く、面倒くさそうなので、いつも通りPythonでやっていきたいと思いま…

2018/8/19【57日目】AKBの本当の神曲をみつける

Amazonのレビューですが、1728件のレビューが取得できました。 なんかデータの不具合があまりも多くて前処理(主にコンマの処理)で泣きそうだったのですが、なんとか読み込めました。 とりあえず学習 とりあえずword2vecで学習させました。センターと入力す…

2018/8/18【56日目】Amazoレビューで口コミ分析をしてみる

『仕事に使えるクチコミ分析[テキストマイニングと統計学をマーケティングに活用する]』を拝読いたしました。 本書の中でAmazonのレビューを使って、クチコミ分析を行う、という解説が面白かったので、Pythonで実践していきたいと思います。 今回のターゲッ…

2018/8/17【55日目】夏休みだし『ゼロから作るDeep Learning 2』を読んでいく2

『ゼロから作るDeep Learning 2 自然言語処理編』の5章以降であるRNN(リカレントニューラルネットワーク)から再開です。 以下はただの勉強メモです。 勉強メモ 今までのニューラルネットワークは、フィードフォワードという流れが一方向のネットワーク。こ…

2018/8/16【54日目】夏休みだし『ゼロから作るDeep Learning 2 自然言語処理編』を読んでいく

夏休みですので、読書でもしたいと思います。今回読むのは『ゼロから作るDeep Learning 2 自然言語処理編』です。 以下、ただの読書メモです。 読書メモ 単語の意味を理解させるのが重要。コンピューターに単語を理解させるのには下記の方法がある。 シソー…

2018/8/15【53日目】AKBの呟きをword2vecで学習させてみた

あまりランダムフォレストをやっていてもしょうがないので、次に進みます。 今日はAKBの呟きをword2vecで学習させたいと思います。 import pandas as pd import numpy as np %matplotlib inline import matplotlib.pyplot as plt train = pd.read_csv('all_2…

2018/8/14【52日目】グリップリサーチをしてみる

現状の正解率もわかったところで、ランダムフォレストのパラメーターを調整していきたいと思います。今はチュートリアルの通りのRandomForestClassifier(n_estimators = 100) しか設定していませんが、これ以外にも多くのパラーメーターがあるみたいです。 3…

2018/8/13【51日目】ランダムフォレストの正解率を上げていきたいので混合行列を見てみた

昨日、やっと福岡聖菜のtweetを当てることができましたが、全部は当てることができなかったのでもう少し正解率をあげたいと思います。 ですが、そもそも自分で作ったモデルがどのくらいの正解率を持っているのかを知る必要がありそうですね。 モデルの検証 …

2018/8/12【50日目】ランダムフォレストで再び福岡聖菜のtweetを当てていく

単語の処理の仕方もかなりわかりましたので、今度こそ福岡聖菜のtweetを判定したいと思います。 前回のダメな例がこちらです。 dailytextmining.hatenablog.com 前処理 6月10日から8月10日までの全tweetを取得します。列はid, name, tweetの3列、行数は3264…

2018/8/11【49日目】word2vecを使ったk-means分類を行う

word2vecを使った分類 昨日まででword2vecを使って、単語を分散表現を作ることができました。単語をベクトル化したことでk-menas分類が使えるそうです。 k-meansの説明は「k-means わかりやすい」で検索したら、次のサイトが出てきましたのでこちらを参考に…

2018/8/10【48日目】Pythonでやっとword2vecを使えた

昨日は文章ごとのリストができましたので、先に進めて行きます。 次は各文章ごとの特徴を抜き出して行くようです。 from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer(analyzer = "word", tokenizer = None, prepr…

2018/8/9【47日目】関数の大切さが今さらわかった

2日前くらい前から行っているkaggleのチュートリアルの続きです。 Bag of Words Meets Bags of Popcorn | Kaggle とりあえず提示されているコードを見ていきたいと思います。 列の名前を見る DataFrameの列の名前を見れるですね。 train.columns.values 実行…

2018/8/8【46日目】Word2vecを試すにはkaggleのチュートリアルが良さそう

昨日、TensolFllowのword2vecのチュートリアルを試してみましたので、一応コードを確認していきます。 word2vecで画像を作成する際のSTEP サンプルコード内にコメントでSTEPが書いてありますので、それを集めてみました。 Step 1: Download the data. Step 2…

2018/8/5【43日目】AKBとモーニング娘。の愛の違いはなんなのか?

AKB曲を取得できましたので、歌詞の分析を行なっていきます。 ついでに比較対象としてモーニング娘。の歌詞も取得しました。 曲数はこんな感じです。 print("AKB曲数" + str(len(akb)) + "曲" ) print("モーニング娘。曲数" + str(len(mng)) + "曲" ) 実行結…

2018/8/2【40日目】AKBの歌詞をまずはタイトルをスクレイピングする

著作権のこともわかりましたので、スクレイピングをしていきます。 対象のURLはこちらです。 http://artists.utamap.com/fasearchkasi.php?artistfid=1003855_1 さっそく新しいプロジェクトを作成して、どんどんやっていきましょう。 $ scrapy startproject …

2018/8/1【39日目】スクレイピングする前に著作権について考えてみた

scarapyの使い方がわかったところで、実際にWebサイトをスクレイピングしていきたと思います。 大量のテキストと言いますと、歌詞が思いつきますので、AKBの歌詞を取得していきたいと思います。 まずは歌詞を載せているサイトを見てみます。Googleで「歌詞 …

2018/7/31【38日目】scrapyを使いこなして、自動でテキストを集めよう2

scrapyを使えばjson形式で、データを保存できることがわかりましたので、次に進んでいきます。 リンクを追う 人がサイトからサイトへリンクをたどっていけるように、scrapyもリンクをたどっていろいろな情報にアクセスできるようです。 昨日に続いて、チュー…

2018/7/30【37日目】scrapyを使いこなして、自動でテキストを集めよう

土日の間、止まっていましたスクレイピングの話を続けていきます。 Beautifulsoupを使って本文の取得には成功しましたが、どうも手間が多く便利そうじゃないですね。 調べてみましたが、Scrapyというスクレイピング用フレームワークがあるそうなので、こっち…

2018/7/29【36日目】retweetされるtweetは現在進行形が多いのかもしれない。

昨日、retweetされた率とfavoriteされた率を出しましたので、今日はその続きです。 scipyを使えば、DataFrameにランキングをつけることができるようなのでやってみます。 from scipy import stats rank = ninkido.assign(order=stats.mstats.rankdata(ninkid…

2018/7/28【35日目】AKBでよくretweetされているのは誰か?

前にretweetをするのは心理的にハードルが高いのか?という疑問がありましたが、そもそも日本人はfavoriteを多く使う傾向にあるそうです。 いろいろな研究があるんですね。 (1) 日本語利用者は、フォロワー、フレンドの数は英語利用者よりも少ない。 (2) 日…

2018/7/27【34日目】「教えて!goo」のオシエルの中身を聞いてきた

金曜日にデベロッパーサミット(通称、デブサミ)が行われていましたので行ってきました。 event.shoeisha.jp 全体的に機械学習の話が多かったのですが、『「教えて!goo」3000万件のQAデータから、世界初の長文生成AIが生まれるまで~AIによる恋愛相談の裏側…

2018/7/26【33日目】ブログをクローリングさせるその3

昨日の段階でリンクできるURLを取得できましたが、ブログのエントリーじゃないurlを取得していますので、エントリーだけを取得したいと思います。 リスト形式の中からある文字を取得するには、if 〇〇 in リストとすれば良いので、こんな感じで取得できると…

2018/7/25【32日目】Pythonでブログをクローリングさせる:その2

その1からの続きです。どうもこの頃日にちをまたいでしまいますね(仕事が忙しい、、、)。 その1で躓いたh3タグの中を取得するには、そのまま変数をprintすれば良いだけでした。こんな感じです。 for link in soup.find_all('h3'): print(link) 実行結果 <h3 class="skin-widgetTitle" data-uranus-component="widgetTitle" lang="en">Pr</h3>…

2018/7/25【32日目】Pythonでブログをクローリングさせる

昨日はWebスクレイピングをしてみましたが、プログラムで次から次へとサイトを見ていくのをクローリングというらしいです。 今日は昨日は引き続いて、クローリングをしてみたいと思います。 クローリングの実装 昨日に引き続いてAKB48 岩立沙穂のアメブロで…

2018/7/24【32日目】ブログからテキストを抜き出す

12時前に家に帰れなかったので、日にちを跨いでいるのですが24日分をアップします。 このブログでは1日目からずっとTwitterからテキストデータを保存していましたが、AKBのメンバーはブログもやっているようなので、ブログからもテキストを保存できるように…