どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

Twitter APIを使ってSeq2Seq用の会話データを収集してみる

人間のように自然な会話ができる人工知能を作りたい。でも会話データがないから何にも始まらない。じゃ、あきらめよ。と、思っている方がいるかもしれません。 そんなあなたにTwitter APIを使ったSeq2Seq用の会話データを収集する方法について紹介したいと思…

Pythonのfor文の基本的な使い方から range, zip, enumerateそしてリスト内包表記

本記事ではPythonのfor文の使い方についてまとめていきます。 記事の最後にはfor文の使い方について理解できているかの確認のために簡単な問題を載せています。 for文の基本的な使い方 range, zip, enumerate range関数 zip関数 enumerate関数 breakとcontin…

gensimを使ってWikipediaの全日本語記事からWord2Vecを作る

NLP

自分でカスタマイズしたMeCabの辞書を使ってWikipediaの記事を形態素解析しWord2Vecを作りたくなったので、やってみました。 本記事ではまず、Wikiextractorを使ってWikipediaの日本語記事から本文を抽出し、形態素解析したのちにGoogle Colaboratory上でWor…

Twitter APIをpythonで使うと〇〇ができる。

Twitter APIの基本的な使い方を記事にしてまとめてみました。 この記事ではpythonのTwitter APIのライブラリtweepyを使って、いろいろやっていきます。 関連リンク 前準備 REST APIを使ってみる。 タイムラインの取得 ツイートの検索 ツイートの投稿と指定し…

Developer登録をしてTwitterのAPIをpythonで使えるようにしてみた。

TwitterのAPIを使いたかったのでDeveloper登録し、pythonで使ってみました。 この記事ではDeveloperへの登録方法からAPIをpythonで実際に使ってみるところまでをやってみます。 はじめに 2. 電話番号の登録 3. Developerへの登録を申請する。 4. アプリケー…

汎用人工知能を完成させるまでの記録

汎用人工知能を作りたいので、完成させるまでの記録を随時更新していきます。 Twitterに誕生 Twitterに誕生 2019年1月5日21時34分、この世に生を受ける。 プロフィールの誕生日を2019年1月5日に設定するも年齢制限に引っ掛かりアカウント作成から30…

MeCabの辞書にipadicとNEologdを併用したものを使ってみる。

NEologdの公式ページによると、 github.com Web上の文書の解析をする際には、NEologdと標準のシステム辞書(ipadic)を併用するのが良いらしいので、システム辞書にNEologdを追加したものを作り、実際に使ってみました。 環境 Windows & Ubuntuでのやり方 1.…

大晦日2018

2018年がもうすぐ終わる。 あっという間の一年だったな。 去年の大晦日は年越しそばを作ったけど、 今年はカップ麺で済ませた。マルちゃんの紺のきつね。けっこううまかった。 今日で最終日だったけど、本当にあっという間の7年間だった。 辛いけど前を向い…

Visual Studio Codeを使ってみる。

VSCode(Visual Studio Code)を使い始めたので、インストール方法と便利な拡張機能についてまとめていく予定。 インストール 使い方 ファイルの作成から実行 拡張機能 vscodevim Ctrl - jを<ESC>に割り当てる Ctrl - OとCtrl - Nについて VSCode内のTerminalとEdit</esc>…

1周年

今日でブログ開設から1年が経つので、とりあえず適当に書いてみる。 そもそもこのブログを開設したのはたぶんいつもの勢いで軽いノリで作ってしまったから。 何を書くのか具体的に特に決めていなかったかな。 というか、ここまで続けることができると思って…

TeXworksのメモ

この記事ではTeXworksの使い方やつまずいたところについてまとめていく予定です。 使い方 コメントアウト 1行の場合 複数行 エラーが出た ! LaTeX Error: Cannot determine size of graphic in ファイル (no Bounding Box) 使い方 コメントアウト 1行の場…

PyTorchによるSeq2seqの実装

PyTorchを使ってSeq2seqの実装をしてみたので、その実装方法について書いてみます。学習に用いるデータセットには実装したSeq2seqが正しく学習できているか簡単に評価できる、トイ・プロブレム(足し算)を使っています。 Google Colaboratoryで動作確認をし…

PyTorchによる言語モデルの作り方

長年?PyTorchによる自然言語処理の実装方法がなんとなく分かっているようで分かっていない状態の私でしたが、、、 最近やっと実装方法が分かったので、でもやっぱり分かっていないので、本当に理解できているのかの確認の意味を込めて言語モデルの実装方法…

日本語のテキストコーパスから辞書を作るライブラリを作りたい⑥

NLP

前回書いた記事の続きです。 www.pytry3g.com 変更点 MeCabの対策 paddingについて __init__の変更 encode()の変更 関連記事 ソースコード 変更点 mecabを使って形態素解析をする際にエラーが出る場合があるので、それの対策とpaddingについて少し変更する。…

Google ColaboratoryでGoogle Driveにあるファイルを読み書きする方法

Google Colaboratory上でGoogle Driveにあるプログラムやテキストファイルを読み込む方法について書いてみます。 参考リンク マウントする Google Drive内のテキストファイルを読み込む 関連記事 参考リンク 下のリンクにあるMounting Google Drive locally…

The Number of Participants

AOJ

参加者数 The Number of Participants | Aizu Online Judge 解き方 各部門の参加者を足すだけ。 コードの説明 入力を空白区切りで分割してリストにする。mapを使いリストの要素を整数に変換してからsum()で要素を足して参加者の総数を求める。 ソースコード …

Rock, Paper, Scissors

AOJ

じゃんけん Rock, Paper, Scissors | Aizu Online Judge 解き方 5人のじゃんけんの手を入力順にリストに入れる。今回は勝敗の出力は引き分けと勝ち負けの2通りに分けて考えています。 はじめにじゃんけんの結果が引き分けの場合を考える。引き分けだとじゃ…

English Sentence

AOJ

英語の文章 問題ページ 解き方 与えられた文字列を単語に分割し、最も出現頻度が高い単語と、最も文字数が多い単語を見つける。 コードの説明 出現頻度はcollectionsのCounter、文字数については組み込み関数のmax()を使う。どちらも標準で入っている。 inpu…

AOJまとめ

AOJ

Vol. 0-3 Volume0 Vol. 10, 15, 30 Volume10 Vol. 11-13, 16 Volume12 Vol. 20-28 Volume21 Vol. 0-3 Volume0 www.pytry3g.com Vol. 10, 15, 30 Volume10 www.pytry3g.com Vol. 11-13, 16 Volume12 www.pytry3g.com Vol. 20-28 Volume21 www.pytry3g.com

Palindrome

AOJ

回文 回文 | Aizu Online Judge 解き方 回文をカウントする変数を用意する。文字列が与えられたら、それが対称かどうか確認し回文ならカウントする変数に1を足す。 コードの説明 文字列が回文かどうか確認するにはスライス記法を使って確認している。 ソー…

Calculation of Area

AOJ

坪面積の計算 土地面積 | Aizu Online Judge 解き方 受け取った入力 a, bを掛けてから1坪=3.305785 [m2] で割ると坪面積が求まる。 ソースコード a, b = map(int, input().split()) print((a*b) / 3.305785)

Secret Number

AOJ

暗証番号 問題ページ 解き方 与えられた入力は半角英数字、記号、空白を含む文字列になっているので、そこから数字を見つけて取り出す。取り出しかたは色々あると思うが、今回は正規表現を使って数字を取り出して文字列から数値に変換し、それらを足していき…

Introduction to PyTorch

PyTorchのTutorialのページにあるIntroduction to PyTorchについて勉強してみました。Tutorialを通して自分が学んだことを書いていきます。 Tutorial Page Introduction to Torch's tensor library Creating Tensors Operations with Tensors Reshaping Tens…

自然言語処理についてのまとめ記事

NLP

この記事では自然言語処理について自分が勉強したことを書いた記事についてまとめていきます。 単語の切り出し作業 形態素解析 MeCab N-gram 自然言語をベクトルにする Bag of Words TF-IDF Word2Vec GloVe テキスト分類 Cosine Similarity Sparse Composite…

t-SNEを使った文書ベクトルの可視化

t-SNEを使った文書ベクトルの可視化をしてみました。可視化にはSeabornの散布図を使います。Seabornはmatplotlibをベースにしたグラフ描画ライブラリで、matplotlibよりも美しく扱いやすいライブラリになっています。 可視化する文書ベクトルはこちらの記事…

N-gramについて書いてみる

NLP

N-gramについて勉強したので、そのメモ。 この記事の最後にはpythonで実装したN-Gramを生成するコードを置いておきます。 はじめに N-gram 文字単位のN-gram unigram bigram trigram 単語単位のN-gram unigram bigram trigram 長所と短所 長所 辞書が必要な…

Cosine Similarityから似ている文書を見つける

NLP

ベクトル間の類似度を計測するひとつの手法にコサイン類似度(Cosine Similarity)というものがあります。 今回はこのscikit-learnで実装されているCosine Similarityを用いて以前収集したツイートに類似しているツイートを見つけてみたいと思います。 関連…

SCDVを使ったテキスト分類をしてみる

NLP

Word2Vecの単語ベクトルから、いい感じな文書ベクトルが作れるSCDVというのを使ってテキスト分類をしてみました。 SCDVって? 今回やること 今回使うもの 1. データの用意 Wikipediaの記事をダウンロード ツイートの用意 形態素解析 訓練データとテストデー…

JavaでHelloWorldを書いてみる

JavaでHelloWorldと出力するだけのプログラムを書いてみました。 この記事ではJavaとEclipseをWindowにインストールしHelloWorldを出力するまでをやってみます。 Javaのインストール Eclipseのインストール Eclipseを使ってみる 1. プロジェクトの作成 2. パ…

GloVeを使ってみる。

NLP

単語分散表現のひとつGloVeを使ってみました。 この記事では理論については詳しく書きません、numpyを使って実装されているGloVeの使い方について書いていきます。 関連リンク GloVe 使い方 1. ライブラリとかの準備 2. データの用意 3. 単語辞書と共起ペア…