3グラムの方がいいという情報があったので、ただ単にMeCabで単語に分けたものよりも3グラムを学習させてみます。 3グラムはこちらで勉強したコードから。 dailytextmining.hatenablog.com def text2threegram(text): kaisekiyou = text.read().split('¥n') s…
色々な情報を探していますが、slackやtwitterでのチャットを使ったコードが多いですね。やはりチャットの部分は自分で作るしかないのかなと思います。 とりあえず、バイバイを入力するまで永遠とオウム返しをするbotまで完成しました。 def main(): while Tr…
とりあえず、チャットボットを作っていきたいのですが、いろいろ調べているうちに時間がなくなってしまい、昨日のものを関数にしただけで終わってしまいました。 i_am = "I : {0}" bot = "BOT : {0}" inp = input("名前は?:") send_message(inp) def res(m…
このまま大量にテキストを学習させていくだけですと、あまり面白くもないので、チャットボットを作って、その反応にマルコフ連鎖でテキスト生成を行わせたいと思います。 まずは簡単なChatbotを作成してみる Chatbotを作ったことがないので、まずは簡単なも…
昨日からの続きです。 手元に4389件のtweetデータがありますので、とりあえず、これを読み込ませてみます。 import markovify # Get raw text as string. with open("all_kaiseki.txt") as f: text = f.read() ten = text.replace('\"', '\n') kaigyou = "\n…
気を取り直して、今日は文章を機械的に作成していきたいと思います。 『ゼロから作るDeep Learning 2 自然言語処理編』に書いてありましたが、テキスト生成にはマルコフ連鎖というのを使うみたいです。 マルコフ連鎖とは マルコフ連鎖とは、現在の状況のみに…
今日はマルコフ連鎖によるテキスト生成を行おうとしましたが、雷の影響なのかwifiが繋がらず断念しました。残念。。。
1週間ほど迷走をしていましたが、昨日、お金を払ってKH Corderを導入いたしました。 これでついに、共起ネットワークができると思います。それではやっていきます。 KH Corderのセットアップ サポートページからzipファイルをダウンロードして、数回クリック…
うーん、どうもNetworkXの全貌が全くわからないので座学することにしました。 (なかなか脱線しますね) こういったグラフを描くためのグラフ理論というのがあるんですね。 グラフ理論 もともとグラフは物と物の関係を表す数学分野の1つ、 数学的にグラフ(G…
残業で家に帰れなさそうなので、日付変わる前に継続用に投稿しておきます。
とりあえずの画像の出し方と、仕組み自体はわかりましたので、自然言語を使って実戦していきます。 さいきん終電帰りが多く、内容は軽めです。 実践 まずはNetworkXとMatplotlibのimportです。 あと、グラフの作成。 import networkx as nx import matplotli…
昨日からの続きです。ぶっちゃけて言いますと、NetworkXについて全くわからず書いてています。そのまま続きをやっていきます。 nodeに数値を入れる意味がわからないいまま続けていきます。 ノードには変数も代入できるようです。 H = nx.path_graph(10) G.ad…
共起ネットワークの話が出てきましたので、そろそろ可視化の勉強をしていきたいと思います。手軽に画像を作るのならKH Coderがいい、という記事を見たのですが、インストールするものが多く、面倒くさそうなので、いつも通りPythonでやっていきたいと思いま…
Amazonのレビューですが、1728件のレビューが取得できました。 なんかデータの不具合があまりも多くて前処理(主にコンマの処理)で泣きそうだったのですが、なんとか読み込めました。 とりあえず学習 とりあえずword2vecで学習させました。センターと入力す…
『仕事に使えるクチコミ分析[テキストマイニングと統計学をマーケティングに活用する]』を拝読いたしました。 本書の中でAmazonのレビューを使って、クチコミ分析を行う、という解説が面白かったので、Pythonで実践していきたいと思います。 今回のターゲッ…
『ゼロから作るDeep Learning 2 自然言語処理編』の5章以降であるRNN(リカレントニューラルネットワーク)から再開です。 以下はただの勉強メモです。 勉強メモ 今までのニューラルネットワークは、フィードフォワードという流れが一方向のネットワーク。こ…
夏休みですので、読書でもしたいと思います。今回読むのは『ゼロから作るDeep Learning 2 自然言語処理編』です。 以下、ただの読書メモです。 読書メモ 単語の意味を理解させるのが重要。コンピューターに単語を理解させるのには下記の方法がある。 シソー…
あまりランダムフォレストをやっていてもしょうがないので、次に進みます。 今日はAKBの呟きをword2vecで学習させたいと思います。 import pandas as pd import numpy as np %matplotlib inline import matplotlib.pyplot as plt train = pd.read_csv('all_2…
現状の正解率もわかったところで、ランダムフォレストのパラメーターを調整していきたいと思います。今はチュートリアルの通りのRandomForestClassifier(n_estimators = 100) しか設定していませんが、これ以外にも多くのパラーメーターがあるみたいです。 3…
昨日、やっと福岡聖菜のtweetを当てることができましたが、全部は当てることができなかったのでもう少し正解率をあげたいと思います。 ですが、そもそも自分で作ったモデルがどのくらいの正解率を持っているのかを知る必要がありそうですね。 モデルの検証 …
単語の処理の仕方もかなりわかりましたので、今度こそ福岡聖菜のtweetを判定したいと思います。 前回のダメな例がこちらです。 dailytextmining.hatenablog.com 前処理 6月10日から8月10日までの全tweetを取得します。列はid, name, tweetの3列、行数は3264…
word2vecを使った分類 昨日まででword2vecを使って、単語を分散表現を作ることができました。単語をベクトル化したことでk-menas分類が使えるそうです。 k-meansの説明は「k-means わかりやすい」で検索したら、次のサイトが出てきましたのでこちらを参考に…
昨日は文章ごとのリストができましたので、先に進めて行きます。 次は各文章ごとの特徴を抜き出して行くようです。 from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer(analyzer = "word", tokenizer = None, prepr…
2日前くらい前から行っているkaggleのチュートリアルの続きです。 Bag of Words Meets Bags of Popcorn | Kaggle とりあえず提示されているコードを見ていきたいと思います。 列の名前を見る DataFrameの列の名前を見れるですね。 train.columns.values 実行…
昨日、TensolFllowのword2vecのチュートリアルを試してみましたので、一応コードを確認していきます。 word2vecで画像を作成する際のSTEP サンプルコード内にコメントでSTEPが書いてありますので、それを集めてみました。 Step 1: Download the data. Step 2…
分散表現を作るために、昨日ちらっと出てきましたGoogle製の機械学習フレームワークTensorFlowを触っていきたいと思います。 チュートリアルのページはこちら。 Vector Representations of Words | TensorFlow 数学の理論は後回しにして、コードのサンプルか…
久しぶりにテキスト処理の話にもどります。今日から単語をベクトル化していきたいと思います。 17日目に固有ベクトルの話をしていましたが、そもそもベクトルとは「大きさだけでなく、向きももった量」のことをいうらしいです。 dailytextmining.hatenablog.…
AKB曲を取得できましたので、歌詞の分析を行なっていきます。 ついでに比較対象としてモーニング娘。の歌詞も取得しました。 曲数はこんな感じです。 print("AKB曲数" + str(len(akb)) + "曲" ) print("モーニング娘。曲数" + str(len(mng)) + "曲" ) 実行結…
歌詞も取得できましたので、今日は後々のことを考えてMySQLに保存したいと思います。 MySQLのことは9日目にやっていますので、これを参考にします(それにしても読みにくい)。 dailytextmining.hatenablog.com まずはデータベース内にテーブルを作る 今回は…