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

Python関連のことを調べてみた2019年12月19日
目次

SQLからtable(view)の依存関係図(PlantUML)を作るPythonコードを書いた

# これは何?

こんな感じのtable(view)の依存関係図を….

![UML.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110482/25cbbb87-5bc4-23cd-0c6d-86e77d6ae05c.png)

↓こんな感じのSQL群から、出力するためのPythonコードを書いたというお話です。
(図の作成にはPlantUMLを用いました)

“` sql
CREATE TABLE
`project.dataset.table5` AS
SELECT
*
FROM
`project.dataset.table1`;
“`

“` sql
CREATE TABLE IF NOT EXISTS
`project.dataset.table6` AS
SELECT
*
FROM
`project.dataset.table2`
UNION ALL
SELECT
*
FROM
`project.dataset.table3`;
“`
“` s

元記事を表示

Kubernetes Client -Python-を使ってみる

#まえがき

変わらずやったことを並べただけです。Pythonあまり触ったこともなかったので、勉強かねて使ってみました。
参考になるかはわかりませんが、同じように使う際には辿ってくださるといいかもしれません。

#環境

使用している環境は下記の通り。
– macOS Mojave
– Core i5
– 8GB
– python3.8.0(brew・pyenvで導入)

また、KubernetesはIBM Cloud Kubernetes Service(IKS)を利用していますが、どこでも使える内容かと。

#python clientの導入・利用

##導入・サンプルコード実装

[git](https://github.com/kubernetes-client/python)にそって実施します。pipでClientを導入。

`pip install kubernetes`

[サンプルコード](https://github.com/kubernetes-client/python#examples)(全てのpodを参照する)

“`python
from kubernet

元記事を表示

AIプロジェクトの時によく使うインストールまとめ

“`
pip install tensorflow==1.15.0
pip install keras==2.2.4
pip install Pillow
pip install opencv-python
pip install opencv-contrib-python
pip install pandas
pip install matplotlib
pip install Flask SQLAlchemy flask-sqlalchemy PyMySQL
pip install line-bot-sdk

“`

元記事を表示

Pythonでグーグルニュースの検索結果をスクレイピング (2) Beautiful Soupを使う

グーグルニュースは関心があるキーワードや文章で検索すると、関連度順とリリース日時順で整理して100件の記事を表示してくれます。
 食品のヒット商品出現の経緯を探るために、ヒットした食品に関係しそうなキーワードや文章で検索して過去のニュースを調査して、それらのニュースリリース時の関心の上昇度をグーグルトレンドで確認することで、ヒットに至る経緯を探ることができそうです。新たなヒットにつながる話題を捕まえるにも使えそうです。
 前報告ではPythonでグーグルニュースのRSSをパースする方法(feedparser)を紹介しました。
[Pythonでグーグルニュースをスクレイピングして、Rで編集。](https://qiita.com/tyamaguchi636/items/2e29ea173f5008b2948e)
しかし、この方法では今年2019年10月頃からsummaryのテキストがtitleのテキストと同じになってしまっています。

 そこで、今回はグーグルニュースの検索結果ページの記事情報をBeautiful Soupを用いて取得するスクリプトを紹介します。
記事情報が整理されて提供

元記事を表示

階層構造を持ったdictionaryの作り方。

##そんなの五秒で実装できるのでは?
後輩A君から「Pythonで階層構造を持った辞書を作りたい」という質問がきた。当然、
「そんなの五秒でできるジャン」
と思ったわけである。しかし結局、質問に答えるまでに30分。解説するのに30分ほど時間を費やしてしまった。また、実装しろと言われたら忘れてしまいそうなので、メモとして残しておきたい。

そもそも、後輩君の質問は単に2重構造、3重構造の辞書を作りたいということではなく、下記のような入力を受け取って

“`:example.csv
A1,B1,C1,3
A1,B1,C2,1
A1,B1,C3,5
A1,B2,C1,4
A1,B2,C2,3
A1,B2,C3,1
A1,B3,C1,3
A1,B3,C2,2
A1,B3,C3,5
A2,B1,C1,3
A2,B1,C2,5
A2,B1,C3,3
A2,B2,C1,2
A2,B2,C2,1
A2,B2,C3,3
A2,B3,C1,4
A2,B3,C2,4
A2,B3,C3,5
“`

自動的に以下のような階層的なdictionaryをつくりたいということであった。

“`
{‘A1’: {

元記事を表示

言語処理100本ノックの解答と感想-中編

advent calendar 17日目です
おくれてしまった。。。

## これは
[言語処理100本ノック](http://www.cl.ecei.tohoku.ac.jp/nlp100/)を解いたので解答と感想を1問ずつ書いていくもの(中編)
前回よりもめちゃくちゃ時間かかった〜〜〜

## 前提条件
環境などは[こちら](https://qiita.com/sh05_sh05/items/234e734cfceaa928bdba)(前回のリンク)

## 本編
### 第5章: 係り受け解析
>夏目漱石の小説『吾輩は猫である』の文章(neko.txt)をCaboChaを使って係り受け解析し,その結果をneko.txt.cabochaというファイルに保存せよ.このファイルを用いて,以下の問に対応するプログラムを実装せよ.

“`python
import CaboCha
c = CaboCha.Parser()
with open(‘./neko.txt’) as f:
text = f.read()
with open(‘./neko.txt.cabocha’,

元記事を表示

ChuckとOpenPoseで作る簡易インタラクティブ音楽プレイヤー

[ABEJA Advent Calendar 2019](https://qiita.com/advent-calendar/2019/abeja)の18日目です。

# はじめに

今年の10月にABEJAにjoinしたimaisです。普段の業務では、[ABEJA Insight for Retail](https://abejainc.com/insight/retail/ja/)開発チームでお客様の店舗内での動きを分析する動線分析の開発を担当しています。

今回の記事では、二次元画像から姿勢推定する[OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose)と音楽向けプログラミング言語である[ChucK](https://chuck.cs.princeton.edu/)を組み合わせて作った、簡易なインタラクティブ音楽プレイヤーについて、そのシステム概要と開発内容をご紹介します。

# システム概要

**「人間が手拍子をすると、それに応じて一つずつ音楽トラックが追加されていく」**以下のようなシステムをM

元記事を表示

Pythonによる感情分析

先日株式会社チームゼットさん主催のPython勉強会に参加してきました。今回のテーマは「word2vecを用いたテキストの感情
分析」とのこと。
正直1週間前にPythonを初めて触った僕にはチンプンカンプンなテーマだったのでが、今勉強している文法がどのように生かされて形になっているのかを体感しにいくのもありかな、と思い開催一日前に、慌てて駆け込み乗車しました。

さて、前置きはこのくらいにしておいて本題に入っていきます。

#そもそもWord2Vecって???
単語を分析するニューラルネットワークモデル(機械学習)。簡単に言うと単語をベクトル化して、重みづけできるというものらしいです。(より詳しく知りたい方は[こちら](https://www.randpy.tokyo/entry/word2vec_skip_gram_model)を参考に)

今回は
[白ヤギコーポレーションさん](https://aial.shiroyagi.co.jp/2017/02/japanese-word2vec-model-builder/ )
のword2vecモデルをもちいました。

word2vec

元記事を表示

お手軽防犯システム「Ban-Ken Johnny」を作ってみた?

[MAN WITH A MISSION](https://www.mwamjapan.info/)
頭はオオカミ、体は人間の究極の生命体。
彼らは自分たちの音楽で世界征服を目指す、最高にアツい集団だ。

そんな「MAN WITH A MISSION」のGt,Vo,Rap ジャン・ケン・ジョニー(Jean-Ken Johnny)と番犬をかけあわせた、というのが「Ban-Ken Johnny(番犬ジョニー)」の由来である。
オオカミと番犬、イヌ科の奇跡のコラボレーション!
センスしかないですね(笑)
ファンクラブ会員限定の10周年記念ツアー当たって欲しいなぁ…

はい、前置きはこれぐらいにして「Ban-Ken Johnny」の機能を紹介します。

###「Ban-Ken Johnny」の機能
* 人感センサーで人の気配を感知したら、スマホにアラートメッセージを送る
* 自分が家にいる間はセンサーが反応して欲しくないので、監視機能の`ON/OFF`を切り替えできる。
* 毎回家出る時にon/offするのはメンドイので、家の外からオンラインでアラート通知を`ON/OFF`できる

「Ban

元記事を表示

pyATS/Genie自作スクリプトで作業前後のConfigの差分取ってみた

最近わたしの記事はpyATSばっかり

# pyATSってなあに

Ciscoが開発している、検証用のPythonライブラリです。
細かいところは端折らせてください、、
詳しくは↓
[公式ドキュメント](https://developer.cisco.com/docs/pyats/)
[私の紹介記事](https://qiita.com/snamon/items/6f5f67a0162d4dd6fb5e)
最近のQiitaで特に自動化界隈で何かと話題(と私は思っている)

## 作成したもの
何を作成したかというと、用意されたConfigを対象の機器に正しく投入して、
投入された結果がshow running-configで差分として表示され、さらにgenie learnで取得した構造化された出力をDiffして差分をわかりやすく表示すると言った内容になります。
今回は開始前のConfigに戻すような作りにしてあります。

“`
├── check_acl.py ←スクリプトの本体
├── testbed
│   └── devnet_always.yml ←testbedふぁい

元記事を表示

生成した複数件のランダムな文字列において重複が発生しない確率は□%

# はじめに

[2019新卒 エンジニア Advent Calendar 2019](https://qiita.com/advent-calendar/2019/2019-graduates) 19 日目の記事です。

ソフトウエア開発において、ランダムな文字列を生成することがあります。例えば、アカウントの識別子(ID)という役割で利用されます。具体例としてTwitterでは、ユーザがアカウントを作成すると、長さ15のランダムな文字列をIDとして付与します。しかし、このような役割があるがゆえに、ランダムな文字列は重複してはいけません。それゆえ、万が一重複が発生したときに実行する相応の処理などもあるかと思います。

新卒として入社して以降、このような重複のないランダムな文字列を必要とするテストデータを作成する機会がありました。その時の興味として抱いていた、そもそもどれだけの確率で重複が発生するのか(上記、それ相応の処理が実行されることはあるのか)を明らかにしたいと思います。

※タイトルはトリビアの種のオマージュです。懐かしい番組ですね。?

# 実験

## 計算式

結果は以下の

元記事を表示

maya のメニュー登録を題材にメタプログラミング・デコレータの紹介

皆様ごきげんよう。毎年恒例 [Maya Advent Calender 2019](https://qiita.com/advent-calendar/2019/maya)の季節がやってまいりました。これは19日目の記事。今回は Python の特定のオブジェクトにコード内容以外の情報を持たせ、その情報を別工程で使用し細工するという手法を紹介しよう。このようにプログラミングをひとつ階層うえから操作する、つまりプログラム自体をプログラムすることを **メタプログラミング**と呼ぶ。本稿では、メタプログラミングの一種であるdecoratorの解説と、普通に記述すると煩雑な記法を要求される maya のメニューの操作に対しこれを適用した記録を記述する。特定のDCCの機能についての話ではなく、むしろプログラミングの話題であるがすこしばかりお付き合いいただきたい。なお今回作成した動作サンプルは https://github.com/yamahigashi/QiitaMayaAdventCalendar2019 においておいた。必要に応じて参照してほしい。

# はじめに
maya でのプログラ

元記事を表示

乃木坂46 堀未央奈のブログで遊んでみた(1) 〜テキストマイニング編〜

[MYJLab Advent Calendar 2019](https://qiita.com/advent-calendar/2019/myjlab) 18日目の記事です。

推しメン堀未央奈のブログで遊んでみました。テキストマイニング編です。

## スクレイピング
[乃木坂46 堀未央奈 公式ブログ](http://blog.nogizaka46.com/miona.hori/)をスクレイピングします。
スクリーンショット 2019-12-16 19.31.57.png

“`scraiping.py
from time import sleep
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webd

元記事を表示

Pythonはじめました: SQL結果で取得した値の配列をリスト型への値入れ替えて別のクエリーの IN で使う

## まずあるSQL結果の値配列をリスト型への値入れ替えていく

サンプルクエリー

“`
users_id_query = ”’
SELECT CAST(user_id as char) as user_id FROM users_table;
”’
“`

※前提として user_id がint であるという点が重要。リスト型にしたかったらこれを変換しないとエラーになってしまう。

Python で上記のクエリー実行すておく。

“`
users_ids = execute_query(‘my_database’, users_id_query)
“`

結果は「111,222,333」みたいにしたいわけ:

“`
users_result = [str(x[‘user_id’]) for x in users_ids[‘rows’]]
users_ids_string = ‘,’.join(users_result)
“`

users_ids_string にはほしいような、カンマ区切りの値が見事に入ってくれる。

## 用意したリストを別のクエリーの IN

元記事を表示

単回帰分析の原理原則

# はじめに
[フューチャー Advent Calendar 2019(2)](https://qiita.com/advent-calendar/2019/future2)の19日目です。
18日目は、noko_qiiさんの[「SageMakerとpapermillでサクッと始めるJupyterNotebookベースな機械学習案件向け開発環境構築・利用ガイドライン」](https://qiita.com/noko_qii/items/2dc27525023fe55cf7bd)でした。
Advent Calendarって、社内の人が様々なトピックで記事を投稿していて面白いですね。

無事に新人研修が終わり、需要予測のチームに配属されました。
今日は、最近学んだことの中から、回帰分析の1つである単回帰分析についてまとめました。

# 回帰分析って何?

回帰分析とは、結果となる数値と要因となる数値の関係を数式(回帰式)で表す統計的手法です。
具体例を交えながら説明します。
例えば、あるクラスのAさん〜Dさんの「勉強時間」と「テストの点数」のデータがあります。
回帰分析は、「勉強時間」と「

元記事を表示

pytubeで Getting KeyError: ‘length_seconds’ が出る方へ

# 引用元
https://github.com/nficano/pytube/issues/497

こちらの内容を元に作成しております。

#変更内容
_main_.py のソースコード修正
length(self)
の戻り値修正

変更前
return self.player_config_args[‘length_seconds’]

変更後
return self.player_config_args[‘player_response’][‘videoDetails’][‘lengthSeconds’]

# 変更前
“`__main__.py

@property
def length(self):
“””Get the video length in seconds.
:rtype: str
“””
return self.player_config_args[‘length_seconds’]
“`
# 変更後

“`__main__.py

@property
def

元記事を表示

lightGBMでベイズ最適化によるハイパーパラメータ探索をやってみる

この記事は、[Fusic Advent Calendar 2019](https://qiita.com/advent-calendar/2019/fusic) 18日目の記事です。

昨日は @tutida による「[Lambda Destinations を SAM で試してみた](https://qiita.com/tutida/items/027603796956640699cf)」でした。Lambdaの新機能、良さそうですね!

本記事は、lightGBMでのハイパラ探索のやってみた記事です。とりあえず動かし方を知る、初心者向けの内容となります。

## 本記事の対象者

– lightGBM(回帰)でBayesian Optimizationをやってみたい人・やり方忘れた人

## ベイズ最適化によるハイパーパラメータ探索について

本記事では説明を割愛させていただきます。(私自体がまだ勉強できてません?)
[こちらの動画](https://www.youtube.com/watch?v=pQHWew4YYao)や[こちらの記事](https://towardsdatasc

元記事を表示

python,motoでAWS-Batchをmockできたので残しておく

# はじめに
AWS-Batchをmotoを使用してmockし、ジョブを登録するところまでできたので備忘録として残しておく。

## mock対象リソース
– IAM Role
– AWS-Batch コンピューティング環境
– AWS-Batch ジョブキュー
– AWS-Batch ジョブ定義

## コード

“`test_aws_batch.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
import boto3
from moto import mock_batch, mock_iam

class MyTestCase(unittest.TestCase):
@mock_iam
@mock_batch
def test_aws_batch(self):
client = boto3.client(‘batch’)
iam = boto3.client(‘iam’)

# iam roleをmock
ia

元記事を表示

pyenv installがエラーで進まないときの対処法

# はじめに
pyenvでpythonのバージョンを変えようと思い別バージョンをインストールした矢先エラーが置きたので対処した手順をメモ
環境: MacOS Mojave バージョン 10.14.6

# 起こったエラー
`$pyenv install 3.6.4`

“`

python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.4.tar.xz…
-> https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
Installing Python-3.6.4…
python-build: use readline from homebrew

BUILD FAILED (OS X 10.14.6 using python-build 20160602)

Inspect or clean up the working tree at /var/folders/_4

元記事を表示

pyenv でcan’t decompress data; zlib not availableが出る場合

メモ

環境: Mac OSX 10.15.1(19B88)

pyenvで新しいpythonバージョンをインストールしようとすると、以下のエラーが出ることがある。

“`terminal:terminal

$ pyenv install python3.6.2

python-build: definition not found: python3.6.2

See all available versions with `pyenv install –list’.

If the version you need is missing, try upgrading pyenv:

$ pyenv install 3.6.2

python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.2.tar.xz…
-> https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar

元記事を表示

OTHERカテゴリの最新記事