Python関連のことを調べてみた2019年10月30日

NO IMAGE

SlackでヌメロンをしてくれるBotを作る(前半戦)

# 前置き
題名の通り、Slackでヌメロンを楽しめるようにしようと思います。
ただし、ヌメロンそのものというよりも、Dockerやら、kubernetesを使った開発の学習をするというのが裏テーマです。
基本的には、備忘録や、同じことをしたい人への学習用等の目的で記事を作成しております。内容についておかしな点がございましたら、積極的に教えていただければと思います。

また、環境は__mac__を使用し__Docker for Mac__を利用しています。そのほかの環境については、適宜変換してご利用ください。

加えて、全ての内容を記載すると凄まじい量になるので、ここでは__設定__、__環境構築__、__最低限状態でのGCP公開__を主として取り扱い、具体的なヌメロンのロジックは次回に回したいと思います。

それでは、お時間のある方は御付き合いいただければと思います。

# 完成までの道筋
### 1. 下準備
– SlackのAPI利用のためのSecretKey取得
– サービスの構造の検討 (Webサービスとして利用とかもできるようにしたい)
– サービスを稼働させるためのGCP

元記事を表示

Google APIとPythonで低コストRPA -はじめに-

以下の投稿は、自社でOSSとPythonを組み合わせてRPAを実施したシステムエンジニアが感じた、RPAの現状の問題とその解決策の概要です。また、あくまで個人的な意見です。

# 低コストRPAを試みた背景
エンジニアの現場に止まらず、近年ではRPAを駆使した業務改善が試みられています。職場にもよりますが、RPAの一般的なプロセスとしては以下のようになると思います。

#### (RPAのプロセス)
1. 現在の業務内の課題の洗い出し
2. 業務内容の改善とRPAツール適用の要件定義/設計
3. RPAツール内の開発/セットアップ
4. RPAツールの運用/保守

プロセスの2段目から出てくるRPAツールのPackageとして、有名なものは様々なものがあり、書籍も多く発行されています。
私の現場でもこれらを導入することを検討しましたが、以下の理由からこれらのRPAツールを導入することが一旦見送られました。

#### (RPAツールの問題)
* 問題1: 初期導入/運用のコストが高い
* 問題2: 初見のRPAツールを使いこなすのに時間がかかる
* 問題3: そもそも課題の洗い出しと業

元記事を表示

statsmodelsによる線形回帰の理解

StatsmodelsはPythonというプログラミング言語上で動く統計解析ソフトです。statsmodelsのサンプルを動かすにはPCにPythonがインストールされていることが必要です。まだインストールされていない方は[Jupyter notebookのインストール](https://qiita.com/innovation1005/items/2f433d6d859f075033a7)を参照してください。Jupyter notebookはstatsmodelsを動かすのに大変便利です。

多くの部分は[statsmodelsのリファレンス](https://www.statsmodels.org/v0.10.0/regression.html)を参考(翻訳)にしています。

# 線形回帰モデル

独立同一に分布する誤差と分散不均一性、または自己回帰モデルにしたがう誤差の場合の線形回帰モデルは

|日本語|statsmodels|
|:-:|:-:|:-:|
|一般最小二乗法|OLS|
|加重最小二乗法|WLS|
|一般化最小二乗法|GLS|
|再帰的最小二乗法|Recursive

元記事を表示

遺伝的アルゴリズム(GA)で勉強計画立ててみた

# スケジュールがめんどくさい
[1440分の使い方](https://www.amazon.co.jp/1440%E5%88%86%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9-%E2%94%80%E2%94%80%E6%88%90%E5%8A%9F%E8%80%85%E3%81%9F%E3%81%A1%E3%81%AE%E6%99%82%E9%96%93%E7%AE%A1%E7%90%8615%E3%81%AE%E7%A7%98%E8%A8%A3-%E3%82%B1%E3%83%93%E3%83%B3%E3%83%BB%E3%82%AF%E3%83%AB%E3%83%BC%E3%82%BA-ebook/dp/B074GWMRFC
)という本は知っているだろうか?
一日の時間の使い方を説いた名著であり,僕はとても感銘を受けた.
本の内容については読んでくれ,Amazon Prime会員であれば無料で読めるのでぜひ.

この本に感銘を受け,僕は1日のスケジュールを毎日30分単位で作成していた.
一か月これを続け,その間はとても効率よく課題や勉強が進んだ.
効果

元記事を表示

2019年Googleマップをスクレイピングする方法5選

元記事:https://www.octoparse.jp/blog/google-maps-crawlers

インターネット時代において、地図のデジタルデータはますます重要になり、ビジネス価値を生み出し、意思決定を支援するのに役に立ちます。このようなデータは業界で広く使用されています。たとえば、飲食業者は、地図データと近くの競合他社を分析して、新しいお店を開く場所を決定することができます。

Googleマップでは、220 の国と地域を広くカバーする地図と数億のお店や場所に関する詳しい情報を見えるし、リアルタイムの GPS ナビ、渋滞状況、乗換案内のほか、地元のグルメやイベントに関する情報を、世界中どこでも利用できます。

Googleマップからデータをスクレイピングするには、さまざまな種類の方法があります。この記事では、その中から5つの方法をご紹介します。

#1. Places API of Google Maps Platform

Google Maps Platformには、地図やストリートビューなどの「マップ(Maps)」、ルートや所要時間などを検索する「ルート(

元記事を表示

PythonとMecabで特定の品詞の単語だけ取り出す

# はじめに

「私はプログラミングが苦手です」
のような文書を、単語に分かち書きしたいことがあります。

これは、Pythonでは

– MecabをホストOSにインストール
– mecab-pythonをpipインストール

すればよいです。

しかし、このまま分かち書きをすると
`私 は プログラミング が 苦手 です`と「は」「が」「です」といういらない品詞が入ってしまうため、それらを削除しましょう。

# 特定品詞

“`py
import MeCab

# 取り出したい品詞
select_conditions = [‘動詞’, ‘形容詞’, ‘名詞’]

# 分かち書きオブジェクト
tagger = MeCab.Tagger(”)

# Neologdの指定版 最新語に対応する
# tagger = MeCab.Tagger(‘-d /usr/lib64/mecab/dic/mecab-ipadic-neologd’)

# 安定するらしい
tagger.parse(”)

def wakati_text(text):
“””
文書textを分かち

元記事を表示

地域再生計画をテキストマイニングして地方創生分析ー単語カウント&ワードクラウド編

[地域再生計画をテキストマイニングして地方創生分析ーデータ編](https://qiita.com/hrkz_szk/items/6af2ef01f4c5714d2a65)の続きです。

#関数の定義
まずはMeCabを使った単語分解のための関数。[単語、品詞1、品詞2]の順でpandasのデータフレームの形で出力します。stemをTrueにすると形態素、Falseにすると使われている単語になります。わざわざデータフレームにして品詞を抽出したのは、分析過程で不必要な品詞が結構出てくるものの、場合によって使い分けたいということがあるためです。

“`{python}
def Mecab_WordList_POS(texts, stem=True,
POS1=[‘連体詞’,’名詞’,’副詞’,’動詞’,’接頭詞’,’接続詞’,’助動詞’,’助詞’,’形容詞’,’記号’,’感動詞’,’フィラー’,’その他’]):
”’
this is a function to return a pandas dataframe with

元記事を表示

地域再生計画をテキストマイニングして地方創生分析ーデータ編

#はじめに
安倍政権の重要施策の地方創生。東京一極集中を是正し、地方の人口減少に歯止めをかけ、日本全体の活力を上げることを目的とした一連の政策のことですが、これによって地方公共団体への国の支援がどう変わっていったのかテキストマイニングの勉強も兼ねてやってみました。

#地域再生計画
今回用いたのは地域再生制度に基づいて作成される地域再生計画というもの。地域再生制度とは、地域経済の活性化や地域における雇用機会の創出を総合的かつ効果的に推進するため、地域が行う自主的かつ自立的な取組を国が支援するものです。地方公共団体は、地域再生計画を作成し、内閣総理大臣の認定を受けることで、当該地域再生計画に記載した事業の実施に当たり、財政、金融等の支援措置を活用することができます。
例えば、企業やNPO法人の施設の農地転用の可能化や、地方に本社機能を移した企業への税制優遇措置などの規制緩和、観光客の誘致、道路や港のインフラ整備などの事業に対する補助金などがあります。この地域再生制度ですが、地方創生が謳われる平成17年から開始されていて、途中、地方創生の概念などを踏まえて、制度変更がなされています。
なの

元記事を表示

産業機械の異常状態をローカルレベルモデルを使って検知してみた

#やったこと
以前紹介した[ローカルレベルモデルを用いた異常検知](https://qiita.com/hrkz_szk/items/ea082ca07460ab8b8813)で、実際のデータを用いて解析してみました。
今回用いたデータは異常値を含むデータを多く公開してくれているこちらのNAB()というサイトから持ってきた’machine_temperature_system_failure’というもので、機械に備え付けられているセンサーが読み取った機械の内部温度の推移を示したものです。異常値は3ヶ所あって、最初のものは予定されたシャットダウン、2つ目は検知が難しいもので、それが3つ目の異常値に繋がり、機械止まることになったというものです。
(原文)Temperature sensor data of an internal component of a large, industrial mahcine. The first anomaly is a planned shutdown of the machine. Th

元記事を表示

初心者向けWEBアプリ開発のコツ

実にくだらないけど、初心者なのでメモしています。

GITからのアプリ起動
まずはクローンを作って、次にVENVで仮想環境を作る
仮想環境を作ったら、SCRIPTS/BINの中にACTIVATEというバッチファイルがある
これを入れると、(VENV)というカーソルになって仮想環境に入る
あとはREQUIREMENTO.TXTというファイルがあって、これに必要なライブラリが入っているので、PIPでインストール
そしてRUNを実行する

“`
git clone https://github.com/省略/ファイル名.git
cd ファイル名
python3 -m venv venv
source ./venv/bin/activate → ここ間違っているのではないか?
pip install -r requirements.txt
python3 ./run.py
“`

フォルダの構成

ざくっとアプリを見るときは,TREEコマンドで排出するといい。
flaskのアプリは、ちょっと大規模になってくると、app階層化をした方が良さそう
__init__というのが、フォルダで階層化さ

元記事を表示

QGISプラグインの設定情報を保存

## はじめに
QGISでプラグインの設定情報を保持したい場合があります。
そして、プロジェクトファイルごとに設定を変更したいことがありました。
公式ドキュメントを見て使い方の把握

## QGIS本体に情報を保存する場合
“`python

setting = QSetting()
key = ‘text’

# 書き込み
settings.setValue(key, ‘hello’)
# 読み込み
value = settings.value(key, defaultValue=’hoge’)
print(value)
“`

## QGISプロジェクトに情報を保存する場合
“`python

# -*- coding: utf-8 -*-
proj = QgsProject.instance()

# 書き込み
proj.writeEntry(‘testplugin’, ‘text’, ‘hello world’)
proj.writeEntry(‘testplugin’, ‘bool’, True)
proj.writeEntry(‘testplugin’, ‘num’,

元記事を表示

Pycharmの設定メモ 自分用

とりあえず

# 設定
– [https://qiita.com/tetsu0831/items/46873120e64d819f26ec](https://qiita.com/tetsu0831/items/46873120e64d819f26ec)(日本語化)
– [https://akiyoko.hatenablog.jp/entry/2017/03/10/082912](https://akiyoko.hatenablog.jp/entry/2017/03/10/082912)
– [https://techinfo-ilsole.com/setup-pycharm/](https://techinfo-ilsole.com/setup-pycharm/)
– [https://www.youtube.com/watch?v=0Rh04vwYItQ](https://www.youtube.com/watch?v=0Rh04vwYItQ)(動画)
– [https://nagacya.com/pycharm/](https://nagacya.com/pycharm/)(使い方

元記事を表示

【Python】Seleniumでエラー、スクレイピングできなくなったが、、、

スクレイピング用にPythonで作成したものを実行したところ、、、

`selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 76`

こんなエラーがでて実行できません。(フツウに先週までできてたのに。。)
このエラー、「今インストールされているChromeDrierだと、Chromeのバージョンは「76」までだよ」ってことらしい。

ChromeDriverのバージョンは自動バージョンアップしないだろうし、、、となると、GoogleChromeのバージョンか?

Chromeのバージョンをしらべたところ、、、
![chromeバージョン.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521911/0fcf1be5-a513-ffe6-11d6-02347a03964f.pn

元記事を表示

誰でもできるGCP ~ローカル環境からプログラムを実行する~

#はじめに
Google Cloud Platform(以降GCP)って色々できるみたいだけど、まずは何をどう動かしていけば良いのか? を知るため、まずは基本的な操作をしてみようと思いました。そんなクラウド初心者が公式ドキュメントを参照し、ローカル環境のプログラムからGCPを動かしてみた過程を記録しました。

今回はStorageとBigQueryを扱いましたが、同じ要領で他の各種Cloud API(*)が利用可能になるかと思っています(願望)。
( * https://cloud.google.com/apis/)

前提

– GCPのアカウント(プロジェクト)を有効化済み
– ローカル環境からプログラムを実行する
– 仮想環境、オブジェクト指向などはここでは考えない.
– Windows(コマンドプロンプト),Pythonで実行する(ただし他環境・言語でも手順は同じ。コード/コマンドは公式ドキュメントの関連項目に記載がある)

# 目次
– Google Cloud Strageの動かし方
– ライブラリをインストールする
– アプリケーションの認証を行う

元記事を表示

日本※で一番※ポーカーが上手い※のは誰か計算してみた(TrueSkill)~実装編~

# 記事へのリンク
1. [理論編](https://qiita.com/syym88/items/6d19b24ce2eebed730d8)
2. 実装編(←本記事)
3. 評価編(書いてます・・・)

# 本記事におけるお断り
本記事は筆者が自学自習のためにデータ取得から計算までを行ったものです。特定の団体や個人から許可許諾はとっていないため、もし内容に問題があるとお考えの場合にはご連絡いただければ幸いです。
また、タイトルにもある通り、単純に強い、上手いを判断するのが困難であるポーカーにおけるスキルの『推定』がやりたかったことです。
本記事を通じて少しでもポーカーに興味を持ってアミューズメントやオンラインでポーカーを始めたいと思う人が増えれば何よりです。

#実行環境
今回環境はGoogle Colaboratoryにて実装しました。

### Google Colaboratory
Googleが公開している無料で使えるハイスペックなJupyterNotebook実行環境です。
Googleアカウントを持っていれば誰でも使えます。
機械学習に使ってほしいっぽい感じで公開されてい

元記事を表示

pythonでsyslogの受信だったり送信だったりをする

### 概要
![syslogtool1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54654/cba3e86f-71eb-9b81-e909-56957f39c4b7.gif)

syslogseverとsyslogclient兼用のスクリプトです。
syslogの受信テストや送信テストにご利用ください。
syslogserverとして動作時は受信したsyslogを画面に表示と同時にsyslog.logファイルへ保存します。

### 実行環境
python3.6.9で動作確認

“`
> python -V
Python 3.6.9 :: Anaconda, Inc.
“`
>condaで環境構築する際はこちらの記事へ
[python環境構築 Miniconda3ハンズオン 複数バージョンを共存させる](https://qiita.com/ysk8888/items/6ea1ff39ea17a55384c7)

pysyslogclientを追加

“`
> pip install p

元記事を表示

Masoniteでブログを作るチュートリアル②(認証とMigration)

## Masonite

Masonite自体の紹介は[こちらの記事](https://qiita.com/dumblepy/items/65b975302618cb6a8f64)が大変参考になります

この記事は公式チュートリアル の通りに進めていきます.
公式チュートリアル以上の情報はありません.
サクッとキャッチアップしたい人向けの日本語訳的な位置づけです.

## 前回までの実装

1. [Masoniteでブログを作るチュートリアル①(ブログ的Hello World)
](https://qiita.com/flowphantom/items/ec1ff5ee004c39b7776e)

## 今回の範囲

1. 認証の作成
2. DBのコネクション設定
3. migration

## 認証の作成

ユーザーの新規登録、パスワード再設定、ログイン、ログアウトなど一般的なユーザー管理のController、Model、Viewを作り込む必要があります。

Laravel などには `php artisan make:auth` コマンドがありますね。

もち

元記事を表示

Travis CIとGithubでPEP8に準拠したコーディングを行う簡単な方法

## .travis.yml
リモートリポジトリにpushする時にTravis CIでPEP8に準拠しているかチェックする.

“`python
language: python
python:
– 3.6
intall:
– pip install pycodestyle
script:
– find . -name \*.py -exec pycodestyle {} +
“`

## リモートにpushする時
リモートへのpushはdevelopブランチなどmaster以外にする.

“`
git add .
git commit -m ‘hoge’
git push origin develop
“`
この時Travisが走り, PEP8に従っていないコードがあったらエラーメッセージが出る.
エラーが出ても構わずpushされるけど, そのままgithub上でmasterにマージしようとすると警告が出るので防止策にはなる。

元記事を表示

ABC 081 B – Shift Only 解説

# はじめに
https://atcoder.jp/contests/abc081/tasks/abc081_b
の提出済みの優秀な方(usayomoさん)のコードを解説。

# 問題
【問題概要】
黒板に $N$ 個の正の整数 $A_1, \dots, A_N$ が書かれています。
すぬけ君は,黒板に書かれている整数がすべて偶数であるとき,次の操作を行うことができます。

黒板に書かれている整数すべてを,2 で割ったものに置き換える。
すぬけ君は最大で何回操作を行うことができるかを求めてください。

【制約】
+ $1 \le N \le 200$
+ $1 \le A_i \le 10^9$

【数値例】
 $N = 3$
 $A = (16, 12, 24)$
 答え: $2$

# 完成コード
“`
n = int(input())
a = list(map(int, input().split()))

ans = float(“inf”)

for i in a:
ans = min(ans, len(bin(i)) – bin(i).rfind(“1”)

元記事を表示

Django#1(初期設定)

# Djangoの初期設定

もう出尽くしてる内容ですが、主に自分用にDjangoの初期設定のまとめ
インストールからアプリの作成とHello Worldをとりあえず表示するとこまで記述。

## python

pyenvがインストールされてる前提で
プロジェクトフォルダ(new_project)内にローカルのpythonとパッケージ環境を設定する。

“`bash
$ mkdir new_project
$ cd new_project
$ pyenv local 3.6.3
$ python -m venv venv
$ source venv/bin/activate
“`

ここから下の手順でうまくいかない場合、原因は十中八九、上記の

“`bash
$ source venv/bin/activate
“`

を実行し忘れてる。(自分比)

## Djangoのインストール

Django本体はpipでインストールする

“`bash
$ pip install Django
“`

## プロジェクトの作成

プロジェクトのフォルダ(new_project)内

元記事を表示

OTHERカテゴリの最新記事