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

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

MeCab

インポート import MeCab インストール Ubuntu Google Colaboratory 分かち書き 名詞のみを取り出す インストール Ubuntu > sudo apt install aptitude> sudo aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file> pip inst…

pickle

インポート import pickle データを保存 データを読み込む データを保存 sample = [[0, 1], [1, 2]] with open("sample.pickle", mode="wb") as f: pickle.dump(sample, f) データを読み込む with open("sample.pickle", mode="rb") as f: data = pickle.loa…

pandas

インポート import pandas as pd csvファイルを読み込んでDataFrameにする。 欠損値の削除 欠損値を含む列を取り除く 値が全て欠損値の列を取り除く 欠損値を含む行を取り除く DataFrameに欠損値があるか確認する DataFrameをcsvファイルに書き込む 正規化 m…

csv

インポート import csv データをcsvファイルに書き込む データをcsvファイルに書き込む # Toy dataset PassengerId = [1000, 1001, 1002] Name = ["John", "Bob", "Trump"] # Write csv file with open("sample.csv", "w") as f: writer = csv.writer(f, lin…

gensimとPyTorchを使ったlive doorニュースコーパスのテキスト分類

NLP

今回はgensimとPyTorchを使ってニュース記事の分類をやってみます。 環境 データの用意 前処理 単語辞書を作る データの変換 ネットワークの定義 学習 テスト おわり 環境 Windows10 Python 3.6 PyTorch 0.2 gensim 2.3.0 MeCab データの用意 ここにあるー>…

Google Adsenseの審査が通った話

Google Adsenseの審査が通りました。 審査方法がちょくちょく変わるみたいなので、審査が通ったときの私の情報とその過程を少し書いておきます。 ※2018年3月31日時点での情報です。 私は3月の16日に申請したので、だいだい2週間くらいで審査が終了しました。…

RadioButtonを使う

今回はRadioButtonを少し触ってみます。 今回作ったもの ↓↓↓ まずRadioButton以外を作ってみます。 import tkinter as tk class App(tk.Tk): def __init__(self): super(App, self).__init__() self.title("Check Button Example") self.geometry("+{}+{}".f…

Bag of Wordsについて書いてみる

NLP

Bag of Wordsについて書いてみます。 ほとんどの機械学習は入力として数値データを与えなければなりません。そのため、自然言語処理において自然言語で書かれたデータを何らかの形で数値に変換する必要があります。Bag of Wordsはそのための一つの方法になり…

Colaboratoryを使ってみる

この記事ではColaboratoryを導入してPyTorchを使えるまでをやります。 Colaboratory Colaboratoryの設定 Hello World GPUの設定 PyTorch データのアップロード 別の方法 おわり おまけ Colaboratory Colaboratoryって何? Googleが開発したGPUを無料で使える…

0105: Book Index

AOJ

本の索引 問題ページ 解き方 語句とページ番号を辞書に登録、語句をアルファベット順に出力し、同時にページ番号も昇順に出力するだけ。 コード(python) d = {} while True: try: data = input().split() except: break word = data[0] number = int(data[1]…

1200: Goldbach's Conjecture

AOJ

Problem A:Goldbach's Conjecture 問題ページ 解き方 求めたい答えは与えられた4以上の偶数あるnに対して、そのnがある2つの素数の和と等しいような素数のペアの数を求めることである。 まず素数を用意しなければいけないので、エラトステネスの篩を使っ…

1601: Short Phrase

AOJ

短句 問題ページ 解き方 単語の並びを5,7,5,7,7の順に区切っていくだけ。 コード(python) p = [5, 7, 5, 7, 7] while True: n = int(input()) if n == 0: break word = [input() for _ in range(n)] flag = False for i in range(len(word)): ip = …

2100: Saizo

AOJ

Problem A:サイゾウ 問題ページ 解き方 与えられたブロックに対して、登らなけらばならない最大の段差と降りなければならない最大の段差を求めるだけ。 コード(python) t = int(input()) for _ in range(t): n = int(input()) blocks = list(map(int, input(…

0020: Capitalize

AOJ

大文字変換 問題ページ 解き方 mapを使って入力を大文字に変換し、joinを使ってmapから変換した文字列を取り出す。 コード(python) print("".join(map(str.upper, input())))

0019: Factorial

AOJ

階乗 問題ページ 解き方 mathモジュールのfactorialを使う。 コード(python) import math print(math.factorial(int(input())))

0018: Sorting Five Numbers

AOJ

5つの数の整列 問題ページ 解き方 sortedとスライスを使う。 コード(python) print(*sorted(map(int, input().spilt()))[::-1])

0015: National Budget

AOJ

国家予算 問題ページ 解き方 テストケースではpythonを使うとオーバーフローについて心配する必要はなかったので、 与えられた数の和が80桁を超えればoverflowと出力、そうでなけらばそのまま和を出力するだけ。 コード(python) N = int(input()) for _ in…

0017: Caesar Cipher

AOJ

シーザー暗号 問題ページ 解き方 this、that、theのいずれかの単語が必ず含まれているので、どの単語が含まれているのかを見つける。 見つけ出したあとはその単語ともとに復号していく。 コード(python) import string strings = string.ascii_lowercase clu…

0016: Treasure Hunt

AOJ

宝探し 問題ページ 解き方 mathモジュールのsinとcosを使って求める。 sinとcosにはラジアンを渡す必要があるので、はじめにラジアンを求める。 ラジアンの求め方は角度x(π/180)。最初真っ直ぐ向いているので角度は90度。この角度と与えられた距離、求め…

RNNを使った文章の自動生成

NLP

今回はRNNを使った文章の自動生成をやってみます。 今回やりたいことは単語を学習したモデルに渡して、その単語から次の単語を予測。これを繰り返して文章を生成することです。 実装はPyTorchです。 RNNでの学習にはある程度の長い文章が必要になってくるの…

作ったオセロ盤で対戦できるようにする

前回、オセロ盤を作るのみで対戦はできないまま終わってしまいました。 pytry3g.hatenablog.com 今回は対戦できるようにプログラムを書いていきます。 下に置いたプログラムは前回書いたプログラムになります。 import tkinter as tk class App(tk.Tk): def …

オセロ盤をつくる

オセロ盤を作ってみました。 できたのがこちら、 すごいシンプルな感じで作りました。 今回はオセロ盤を作るのみで、石の反転やマスがクリックされたときの処理は次回以降に書きます。 このオセロ盤を作るステップは 1. メインウィンドウをつくる 2. Canvas…

Labelを使う

今回はラベルを使ってみます。 ラベルを使うとテキストや画像をwidget上に表示することができるようになります。 ボタンが押されたらラベル上のテキストを変更する まずは、メインウィンドウを作ります。 import tkinter as tk class App(tk.Tk): def __init…

Canvasの図形と画像をドラッグ・アンド・ドロップで動かす。

今回はeventを使ってみます。tkinterのアプリケーションはmainloopメソッドを実行することにより、イベントループの状態、つまりイベント待ちの状態になっています。 イベント待ちの状態でイベントを発生させることにより、様々な用途のアプリケーションを作…

Canvasを使ってみる。

今回はCanvasを使っていろいろやってみます。 今回やることは ・Canvasを貼る。 ・線を引く。 ・長方形を描いてみる。 ・文字を描く。 ・画像を貼り付ける。 Canvasを貼る。 はじめに、メインウィンドウを作成します。x=300, y=100の位置にウィンドウが出る…

ボタンを作る

Button ボタンを作ってメインウィンドウに配置するプログラムを書きます。 下のプログラムはボタンを作って配置する簡単な例です。 import tkinter as tk root = tk.Tk() button_quit = tk.Button(root, text="Quit", command=root.quit) button_quit.place(…

Hello World

Window tkinterのHelloWorldのプログラムを書きます。tkinterを使ってアプリケーション作るときはじめにトップレベルのウィンドウ(メインウィンドウ)を生成する必要があります。以下のように3行書くだけでメインウィンドウの作成をし、アプリケーションの…

tkinter

※この記事ではtkinterについて書いた記事を随時更新してまとめていく予定です。 環境はWindows10, python3.6です。 はじめに tkinterとはpythonに標準で入っているGUIアプリケーションを作成するためのライブラリです。 この記事ではtkinterのwidgetの使い方…

0104: Magical Tiles

AOJ

不思議なタイル 問題ページ 解き方 5種類のタイルの情報を辞書に登録しておき、タイルの文字列を読み取り辞書に基づき動くだけ。条件より部屋の外に出ることはないので特に注意することはない。LOOPするかしないかの判定はタイルの枚数より判定する。なぜな…

0014: Integral

AOJ

積分 問題ページ 解き方 長方形の横の長さが与えられるので、それを基に縦の長さを求めて長方形の面積を求める。 その求めた長方形の面積を足していき、近似的な面接を求める。 コード(python) while True: try: d = int(input()) except: break print(sum(d…