Python関連のことを調べてみた2020年06月14日

Python関連のことを調べてみた2020年06月14日

日本語版WikipediaのデータからWord2Vec用データをつくる(Mac対応)

![SS 192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/a41cd967-f549-8677-1efa-2e99bf69518d.png)  テキストデータを手元でベクトル化してみたい。

##やること

[前回word2vecのデモを試せた](https://qiita.com/Ninagawa_Izumi/items/a866ea7e4f8eaaddb6de) ので、今回は日本語で試してみたいと思います。
すぐ使えるword2vec用の日本語データも公開はされているようですが、今後いろいろなデータからベクトルを作れるよう、学習用の前処理を手元でやってみたいと思います。
ここではWikipedia日本語版の公開データからベクトルデータを作成するまでを行います。

##環境

– Linux系
– MacBookAir 2015 で検証。
– 小型扇風機(ファイル処理の計算中にノートPCが熱くなりがち)

##やり方

### word2vecをインストールする
(参考)[前回記事

元記事を表示

美味しいお店を手軽に見つけたい

# こんなことありませんか
見知らぬ土地でご飯を探そう思ってスマホで検索してみたけど、、、

– 食べログだと一覧から高評価のお店を探すのって大変
– googleマップだと検索候補を一個ずつクリックしてレビュー見てみないといまいちわからない
– レビューサイトは否定的意見を書かないから本当に美味しいか分かりずらい

街中でスマホ取り出して美味しいお店探そうとしても、ぱっと見で高評価のお店は出てこなくて難しいですよね。
***現在地周辺で高評価のお店を知りたい!***
そんな時に便利なのがこのページで紹介する高評価のお店マップです。
# 何をするのか
スクレイピングによって[食べログの百名店](https://award.tabelog.com/hyakumeiten)で紹介されているお店の情報を収集します。
その情報をGoogleマイマップにインポートすることで高評価のお店マップを作成します。
*実行前に次章の「スクレイピングする前に」をよく読んで危険性について十分に理解してください。*
# スクレイピングする前に
Webからデータを取り出し分析可能な構造化データにすることをスクレイ

元記事を表示

【Lambda】毎朝天気を教えてくれるBotを作った【サーバーレス】

# 前提

– **AWSアカウントを持っている**
– AWSの基礎知識
– Pythonの基礎知識

# 作ったもの

天気を取得し毎朝7時にLINEに通知するbot!
※ 母が「毎朝天気知りたい」と言っていたので作成することにしました。

weather_forecast_LINE_bot.png
※ テスト中の画像

# 技術選定(この記事で学べること)

– 天気を取得し → OpenWeatherMapのAPI
– 毎朝7時に → CloudWatch Events + Lambda
– LINEに通知する → LINE Notify

# いざ、実装

実装上、APIキーやアクセストークンの取得が先になるため、説明の順番が前後します。説明の順番は以下の通りです。

1. OpenWeatherMapの

元記事を表示

datadogにpython, DogStatsD経由でMetricsを送り込んでみる

# はじめに
datadogとはSaaS形式のサーバの運用監視ツールです
監視対象の各種サーバから各メトリクスをdatadogに送ることにより、
ブラウザ上で様々な分析ができます。

datadogは、各サーバのリソースやアプリケーションの実行回数・TATをdatadogに送信してくれるエージェントを提供してくれていますが、今回この記事ではpythonで特定の値をdatadogに送信し続けるスクリプトを作ってみようと思います。

データベースの特定のテーブルのデータ量を送り続けるとか、シェルスクリプトの実行回数を送るなど、活用用途はいろいろ考えられると思います。

# 前提
python3を利用

# Metricsを送り込むスクリプトの作成

DogStatsDサーバ経由でMetricsを送り込んでみます

## datadogライブラリのインストール

`pip3 install datadog`

## サンプルスクリプト

“`sample.py
import random
from datadog import initialize
from datadog import

元記事を表示

PythonでQRコードとバーコードを生成して普通に読み取ったりOpenCV でリアルタイムに読み取る方法

#0.最初に

今回作るものがどういう感じで動くのか見てみたい方は、[こちら](https://youtu.be/2kRHo-biBjE)(youtubeの動画)でどうぞ。

まずは、今回必要なものを一度にインストールします。

“`
pip install pyqrcode
pip install pypng
pip install python_barcode
pip install pyzbar
“`

#1.QRコードの生成
ここではまずは文字の情報を含んだQRコードを生成します。

“`qrcode_barcode.py
import pyqrcode

a = pyqrcode.create(content=”Hello From Jetsonnano”,error=’H’)

a.png(file=’test.png’,scale=6)
“`
これを実行すると以下のようなQRコードが出来上がります。
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/616944/bf

元記事を表示

言語処理100本ノック 2020【00~89 解答】

[言語処理100本ノック2020 第8章: ニューラルネット](https://kakedashi-engineer.appspot.com/2020/05/09/nlp100-ch8/)の続きです。

この記事では第9章(80-89)のRNN, CNNについて扱います。

## リンク

この記事にはコードのみを載せました。問題文や解き方の補足は下記のリンクを参考にしてください。

[言語処理100本ノック2020 第9章: RNN, CNN](https://kakedashi-engineer.appspot.com/2020/05/14/nlp100-ch9/)

# 第9章: RNN, CNN

## 80. ID番号への変換

“`python
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
train = pd.read_csv(base+’train.txt’, header=None, sep=’\t’)
valid

元記事を表示

pythonでPowerPointの各スライドをJPGファイルに分割して出力する

#はじめに
PPTファイルをJPGに変換してドキュメント作成に活用したいことないですか?
自動化に取り組まれている方(https://qiita.com/natsutan/items/2487e24fe3f31569b40d) を発見したのですが、下記2点が不十分と考えました。

– スライド名がスライド1,スライド2となり、大量に作るとなんの絵かわからない
– ちっちゃい絵を書いたときに、余白が多い(スライド全体をエクスポートするため)

そこでPPTのスライドタイトル名をもとに、各ページをJPGファイルとして出力するソフトを作りました。

#動作環境

– Win10
– Anaconda 環境
– Python 3.7.7
– OpenCV (https://anaconda.org/conda-forge/opencv を入れてください。デフォルト環境だと入ってません;入れ方がわからない? Anaconda prompt を開いて conda install -c conda-forge opencv と打ち込めば入るのではないでしょうか?)

#実行結果

– S

元記事を表示

Python超初心者の超初心者のためのPython #関数2

環境
windows7 (Mac Book Pro 16inch欲しい)
Visual Studio Code
chrome
python ver3.8.3

この記事はプログラミング初心者かつPython初心者に向けて記述します。

##関数その2

[前回](https://qiita.com/drafts/c403a2a997a0247adc96/edit)は
####変数=関数(引数)
で終わりました。
しかし、このまま関数を進めても理解が深まらないままになる恐れがあるのでここでストッピします。

今日引っ張り出したるものは、初学者でも避けては通れない関数、これです

“`Python:func.py
print(‘Hello World’)
#Hello World
“`

そう、この`print( )`も関数なんです。しかも`○○料理`と`変数名`が無くても食材を入れたら調理してくれます。

この`print関数`の事をPythonでは`組み込み関数`といいます。
Pythonではどのくらいの数があるのでしょう?
[Python公式サイト:組み込み関数の種類と使い方]

元記事を表示

【Python】ABC159D(高校数学nCr)【AtCoder】

競プロはノートとペンを用意してやろう!!!
(特に数学の式が出てきたら)

#[ABC159D](https://atcoder.jp/contests/abc159/tasks/abc159_d)
Difficulty:417
今回は解説の解説をしますw
まずは[解説](https://img.atcoder.jp/abc159/editorial.pdf)より引用。
>①N個のボールから、書かれている整数が等しいような異なる2つのボールを選び出す方法の数
②k番目のボールを除いたN−1個のボールから、k番目のボールと同じ整数が書かれたボールを選び出す方法の数
をそれぞれ求めて、前者から後者を引けば求まります。
前者は、∑Ni=1(ci 2), 後者はcAk−1となります。

**後者は「cAk−1」となります。**
なんでやねん!
##後者は「cAk−1」となります。の意味
こういうときは具体例を考えて法則性を見つける(ノートとペンがないと無理!)
<具体例1>
5個から2個選ぶ→5C2=5*4/2*1=10通り!
4個から2個選ぶ→4C2=4*3/2*1=6通り!
 ⇨10-6=

元記事を表示

RealSenseでSkeleton Trackingできるらしい

RealSenseを持ってるけどKinect持ってないのでSkeleton Trackingはできないかぁ~と諦めかけていたところ、なんとRealSenseで[Skeleton Tracking SDKが使える](https://dev.classmethod.jp/articles/skeleton-tracking-sdk-by-cubenos-tutorial-windows/)と聞いて。

#インストール
https://www.intelrealsense.com/skeleton-tracking/
ここの右側「Quick Start」から始める。

※なぜかGmailが受付されない。Yahoo mailはOK。

今回はpythonで試す。
[この記事](https://dev.classmethod.jp/articles/skeleton-tracking-sdk-by-python/)によると、python 3.8は未対応らしい。
ので、
#仮想環境を作る
仮想環境は、これで作成。
https://www.python.jp/install/windows/ven

元記事を表示

【Python】緑コーダーになりました〜【AtCoder】

#【祝】緑コーダーになりました〜
21回目でようやく緑コーダー!!!
一番初めは2重for文も書けなかった俺でも緑コーダーになれることが証明できました!!!
ちなみに緑コーダーは`Atcoder`の中で上位30%らしいです!!!**すごい!!!**
パチパチパチ(拍手)〜
スクリーンショット 2020-06-14 3.10.59.png

#####関連記事リンク
[【Python】茶色コーダーになりました〜【AtCoder】](https://qiita.com/rudorufu1981/items/8fa65af3078dc7257a8d)

#緑コーダーになるまでにやったこと
茶色コーダーには参考になるかも!
茶色コーダーから緑コーダーになるには、
**いくつかのアルゴリズムの習得(勉強)が必要になる
→勉強

元記事を表示

RaspberryPi 3B+ で SHT31-D の値を読み込む時のエラー

## 今回使用したもの
– メイン:Raspberry Pi 3 Model B+
– 言語 :Python
– センサ:SHT31-D

![CENTER_0002_BURST20200614012610275.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637498/7caa4239-d8c7-8dcc-ec6e-f70dbb03546f.jpeg)

## 参考にしたページ
今回こちらのページを参考にさせていただきました。

[ラズパイを使って温湿度をセンサから取得しよう!](https://qiita.com/nishiwakki/items/877b10517c26a8a4b583)

## 今回の問題点
大変わかりやすかったのですが、そのままコードを書いたところエラーが。

“`
Traceback (most recent call last):
 File “SHT31D.py”, line 16, in
  i2c.write_byte_data(i2c

元記事を表示

[光-Hikari-のPython]06章-01 関数(組み込み関数と関数の定義)

#[Python]06章-01 組み込み関数と関数の定義
この章から、関数(Function)について説明していきます。関数はPythonだけでなく、どのプログラミング言語でも登場する概念です。ぜひ押さえておきましょう。

関数というと数学で1次関数や2次関数といったものを中学・高校時代に学んだと思います。例えば以下の2次関数、

“`math
f(x) = x^2+3x+4
“`
があったとき、x=2とすると、

“`math
f(2) = 2^2+3・2+4
=14
“`
と求めることができました。

プログラムにでも、上記のx=2のように、何か値を入れると、**値が返ってくる**ものを関数として定義することができます。
今回はその関数の作成の方法について見ていきたいと思います。

##組み込み関数

実際に過去に、**print関数、int関数、str関数、len関数、sorted関数、range関数**などといったものに触れたと思います。実際に見てみましょう。**Python Console**から以下のコードを入力してください。

“`.py
>>> str = ‘

元記事を表示

AWSのクラウド製品ページから、AWSサービス名をcsvに出す

何に使うのか、と問われれば黙るしかない

“`python

import requests
import re
import csv
from bs4 import BeautifulSoup

r = requests.get(‘https://aws.amazon.com/jp/products/’)
data = BeautifulSoup(r.text,’html.parser’)
tags = data.find_all(“div”,class_=”lb-content-item”)

regex = re.compile(‘(?P.*?)(?P.*?)‘)

with open(‘a.csv’,’w’,newline=”,encoding=’utf8′) as f:
writer = csv.writer(f)

for t in map(lambda tag:str(tag),tags):
m = regex.search(t)
writer

元記事を表示

for文の中でリストを変更する

## 目的
* リストをfor文で回しながら特定条件で前記リストを変更する場合に、バグってしまったため原因を調べる。
* 上記対策のベストプラクティスを記述する。

## 結論
* 公式嫁!

>注釈 ループ中でのシーケンスの変更には微妙な問題があります (これはミュータブルなシーケンスのみ、例えばリストで起こり得ます)。 どの要素が次に使われるかを追跡するために、内部的なカウンタが使われており、このカウンタは反復のたびに加算されます。 このカウンタがシーケンスの長さに達すると、ループは終了します。 このことから、スイートの中でシーケンスから現在の (または以前の) 要素を除去すると、(次の要素の位置が、既に処理済みの現在の要素のインデックスになるために) 次の要素が飛ばされることになります。 同様に、スイートの中でシーケンス中の現在の要素以前に要素を挿入すると、現在の要素がループの次の週で再度扱われることになります。 こうした仕様は、厄介なバグにつながります。 これは、シーケンス全体のスライスを使って一時的なコピーを作ることで避けられます。

“`python:公式.py
for

元記事を表示

AIエンジニアが知っておきたいAI新ビジネス立案のノウハウ・コツまとめ

本記事では、AIエンジニアやAI関連のビジネスパーソン向けに、起業および新規事業立案に関するノウハウ・情報をお知らせします。

AIに特化していない新ビジネス立案関連の内容も多いのですが、ご容赦ください。
AIに関わる内容は本記事の後半部分から始まります。

本記事は、
[1] スタートアップ系での有名なアドバイスを引用掲載
[2] それに対して、私(小川)なりの私見を記載
という構成で執筆します。


**AIエンジニア向け記事シリーズの一覧**
[その1. AIエンジニアが気をつけたいPython実装のノウハウ・コツまとめ](https://qiita.com/sugulu/items/c0e8a5e6b177bfe05e99)
[その2. AIエンジニアが知っておきたいAI新ビジネス立案のノウハウ・コツまとめ(本記事)](https://qiita.com/sugulu/items/fa0ea622979507cdad6b)

**本記事の目次**
はじめに
0. 起業や新規事業立案を学ぶうえで知っておきたい人物・組織
1. アイデアの見つけ方
2. アイデアの

元記事を表示

pytest使い方まとめ

今まで**「テストコード」**をほとんど書いたことがなかったのですが、pythonのテストコードを書く機会があり、慌てて使い方を学びました。本記事ではpython単体テストのフレームワークであるpytestの使い方を要点を絞ってまとめました。

参考:公式ドキュメント(https://docs.pytest.org/en/latest/contents.html)

## pytestとは

pythonでの単体テストを行うためのフレームワーク。同様なものでunittestというものがあるが、pytestの方が人気らしい。
下記がpytestの特徴

– テスト失敗時の情報が詳細
– テスト対象のモジュール、関数を自動で発見
– フィクスチャ機能を利用することで、モックなど、テストの前処理ができる。(後述)
– unittestにも準拠している

## インストール
`pip install -U pytest`

## 簡単な使用方法

### 単純な単体テスト
基本的に、下記の要領でテストを実行できる。

– テストケースを`assert <条件式>` で記載する

元記事を表示

BeautifulSoup+Pythonで、マルウェア動的解析サイトからPowerShellコマンド取得

# はじめに
JoeSandboxのマルウェア分析レポートをBeautifulSoup+PythonでWebスクレイピングし、**PowerShellのコマンドラインを取得**してみたいと思います。

# JoeSandboxについて
マルウェアを解析してレポートを出力してくれるサイトです。
https://www.joesandbox.com

JoeSandboxには色々バージョンがありますが、Cloud Basicというバージョンであれば無料でマルウェア解析ができます。
さらにCloud Basicで解析されたレポートは公開されますので、他の人の分析結果レポートを見ることもできます。
ちなみにCloud Basic以外のバージョンですとWeb APIが利用できますが、Cloud Basicでは利用できないようです。

詳細に知りたい方は以下をご参照ください。

*JoeSandboxでマルウェアの動的解析をする方法*
*https://qiita.com/hanzawak/items/ec665e0f96dc65f3def3*

*BeautifulSoup+Pythonで、マル

元記事を表示

ゼロから始めるLeetCode Day55「22. Generate Parentheses」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

pythonのスピードアップに関して(メモ)

“`python:speed01.py
import time

def test01():
time01 = time.time()
str1 = “”
for i in range(1000000):
str1 += str(i)
time02 = time.time()
print(“test01でかかった時間:{:.6f}s”.format(time02 – time01))

def test02():
time01 = time.time()
lst1 = []
for i in range(1000000):
lst1.append(str(i))
str1 = “”.join(lst1)
time02 = time.time()
print(“test02でかかった時間:{:.6f}s”.format(time02 – time01))

test01()
test02()
“`

“`
実行結果:
test01でかかった時間:1.515

元記事を表示

OTHERカテゴリの最新記事