Python関連のことを調べてみた2022年09月29日

Python関連のことを調べてみた2022年09月29日

特定のサイトにあるテーブルの中身をCSVに書き出したい

**推し**のいる生活っていいですね。

#### 経緯
プログラミング自体は苦手ですが、Pythonは特に苦手で、タブで揃えるのがすごく嫌いなので使いたくないのですが、とあるライバーのイベントにはまってて、ランキングを適宜取得してその変化をエクセルで見たかったので慌てて作成しました。

#### 感想
Python面白い!Webスクレイピングは2度目くらいだけど、いざというとき便利だなあ〜

#### 定期実行はやってません
cronとかで自動実行してもいいんだけど、設定間違えるとトラフィックを増やして迷惑をかけることになるので、手動実行をしています。

#### ファイル名にタイムスタンプをつけてます
どの時点で取得したデータかわかるように、ファイルにタイムスタンプをつけています。

#### このコードのダメな点
増えたデータはエクセルでなんとか処理すればいいや。(成長を蝕む慣れてるツールで時間かけてなんとかすする姿勢)実行毎にファイルができるので、ファイルが増える。本当は1つのファイルに追記していくのが美しいのだろうけど、次のイベントに進出したら実施予定。

#### 参

元記事を表示

【個人開発】何でも話せるお嬢様会話AIを作ってみた(TypeScript,Python)

個人開発で **[会話AIサービス Eveki](https://eveki.vercel.app)** を作りました。架空のキャラクター[^1]を再現したAIと自然な会話が楽しめることが特徴のサービスです。今回はその第一号として、**お嬢様AI**の公開を行いました。[まずは実物をお試しください。](https://eveki.vercel.app/demo)

![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/713689/dd72101a-5c95-7060-ac49-8cdaa5ae4eff.gif)

# サービスの概要

## AIとの会話

基本的には**メッセージを入力するだけ**です。まるで人間のようにお嬢様言葉で会話を行います。今日の予定から人生の意味まで、どんな話題でも返答[^2]し文脈に沿って話を進めることが可能です。会話の内容は下のボタンからTwitterに共有できます。

## AIの設定

名前は「真流華レイテ」[^3]で、名字の読

元記事を表示

macOS Monterey 12.6でtkinter(tcl-tk)をちゃんと動かす

# 困っていたこと
macOS Monterey 12.6にする前から発生していたのですが、Windowsで正しく動いていたtkinterのアプリをMacに持ってきたところ、Tkinterで作成したウィンドウが真っ黒に表示されて使い物になりませんでした。
そこで、いろいろと調べたところ、Macにビルトインされているtkinter(tcl-tk)のバージョンでは不具合があり、新しいバージョンに変更すれば良いことが分かりましたが、一癖ありかなり手間取りましたので、備忘録的に書き残します。
ざっくり書くと、最新のtcl-tkをインストール(アップデート)して、それだけだとPythonが新しいVersionを認識しないので、PATHを通したり、環境変数をセットして、Pythonを上書きでアップデートする。
これで、私の場合はうまく行きました。

# 使っている環境
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314541/ba513a4b-b8c6-20ef-9c43-fc4076343958

元記事を表示

GCP上でGoogle Cloud Speech-to-Textをpythonで動かしてみた

# はじめに
**GCP上でGoogle Cloud Speech-to-Textをpythonで動かしてみた記事**です。

以下余談
趣味で[podcast](https://fumufumu-fm.github.io/fumufumufm/)[^1]を配信しているのですが、先日友人と話していて
「どこかの回の雑談で〇〇について話していたよね」
と言われたのですが鳥あたまの私は話した記憶こそあるものの、どの回で話したか全く思い出せませんでした。
**話した内容を全文検索したい…!**
と思ったので、とりあえず音声のテキスト化から始めようと思いたち、やってみました。
文字起こしサービスは
[Amazon Transcribe](https://aws.amazon.com/jp/transcribe/)
[Google Cloud Speech-to-Text](https://cloud.google.com/speech-to-text?hl=ja)
などが有名ですが、業務ではAWSを使うことが多いので、勉強のためGoogle Cloud Speech-to-Textを使ってみよ

元記事を表示

ColabやiPythonでファイルをオート・リロード

Colabなどで開発しているとき、別ファイルのモジュールを書き換えてインポートしても、変更が反映されません。
呼び出しごとに別ファイルモジュールをリロードするには、以下を実行してから呼び出します。

“`shell
%load_ext autoreload
%autoreload 2
“`

これで別ファイルの変更が反映されます。

🐣
****
フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com

Core MLやARKitを使ったアプリを作っています。
機械学習/AR関連の情報を発信しています。

[Twitter](https://twitter.com/JackdeS11)
[Medium](https://medium.com/@rockyshikoku)
[GitHub](https://github.com/john-rocky)

元記事を表示

Djangoで途中でテーブルの定義を変更したらpytestが動かなくなった話

## 何があったか
ある時に実装に必要な修正を行うために既存のテーブルの定義を返る必要があり、別の方がマイグレーションを行った。
その後APIの修正のためにpytestの修正を行い、テストを実行しようとしたところテスト用のデータベースをマイグレーションするところで引っかかり実行できなくなってしまった。
調査をすると今回マイグレーションで修正したテーブルはそのテーブル作成時のマイグレーションで`loaddata`を使ってjsonから初期データを登録していたことがわかった。
定義を変更したマイグレーションをAとし、テーブル作成時のマイグレーションをBとするとテスト用のデータベースのマイグレーションはBのタイミングで止まっていた。

## 原因
まずpytestでは特に設定等していない限り、テストを実行すると必要なテーブルを作成するためにDjangoのmigrationファイルに基づいて頭から順次migrateを行う。
しかしソースコードを読むと、`loaddata`の実態はfixture配下の指定されたjsonを読んでそれをDeserializeし、対象のmodelにマッピングするような処

元記事を表示

Python環境を整理する

## 前提
MacのPython環境がローカルやらスタンドアロンコマンドラインツールやら仮想環境やらでごちゃごちゃしていたので整理した

## 不要なPythonの削除
1. アプリケーションからゴミ箱に入れる
1. 削除 “`rmーrf /Library/Frameworks/Python.framework“`
1. “` ls -l /usr/local/bin | grep Python “`で表示されたリンクを“`unlink python“`で削除
1. zshrc等のpython記述を削除

## 管理ツール類の整理
#### Homebrew
macのツール管理マスタ的な存在
#### pyenv
pythonを管理するツール
これを入れないとpythonのupdateとかバージョン管理が面倒になる
#### venv
pythonの仮想環境
なぜpythonの管理もして仮想環境も入れないといけないんだと思っていたが、mac上で動くpythonとプロジェクトごとのpythonを分けないとパッケージがごちゃごちゃするため明確に分ける
フロント系の開発してる人で

元記事を表示

Twitter APIとPythonでツイートデータを取得する

こんばんは。

前に書いた記事を消してしまったため、再掲させてください。
やることは標題の通りです。

# 今回やることの大まかな流れと、準備

### 最終的に出力したいこと

**「特定のワードでツイートを取得し、結果を見える形で出力する」。**

### 方法

1.PythonでtwitterAPIを利用し、ツイートデータを取得します。
2.特定のワードで絞ります。
3.結果をCSVで出力します。

### 準備

**・TwitterAPIのデベロッパーアカウントを取得する。**
→データの公開などtwitter社の規約などに触れないか確認します。

**・Pythonを書くエディタを用意する**
→anacondaでやろうと思ったのですが、ハマったので今回はVisual Studioでいこうと思います。

### 取り組む前に悩んだこと

元記事は **「KDDIが約款に抵触したかどうか、検証したい(失敗した)」** というものでした。それを踏まえて以下のことについて考えていました。

**・どのように出力すれば判定可能か**
いわゆる効果測定というところでしょうか(良い用

元記事を表示

画像認識技術で空港の飛行機数を数えてツイート投稿する

休日にやることないから、画像認識を使って羽田空港の飛行機を数えてツイートに投稿するシステムを開発しました。
Darkflowというオープンソースの物体検出のライブラリを使います。

Darkflow のgitリンク
https://github.com/thtrieu/darkflow

環境:
Windows 10
Anaconda3
tensorflow 1.14.0
Python 3.7.0
OpenCV 4.5.1

まず、githubからクーロンしましょう
“`
git clone https://github.com/thtrieu/darkflow.git
cd darkflow
“`

darkflow-masterフォルダ内にbinフォルダを作成し、binフォルダ内にyolo.weightsをダウロードしましょう。
★少し時間かかります。直接ウェブサイトからダウンロードしてもOKです。
“`
cd bin
pip download https://pjreddie.com/media/files/yolov2.weights
“`

darkflowをイン

元記事を表示

matplotlibのlegendで1つのプロットに対して複数プロットを割り当てる方法

表題通りです.

まずは以下のようなコードを用います.

“`python
import matplotlib.pyplot as plt
import matplotlib.collections as mcol
from matplotlib.legend_handler import HandlerLineCollection
from matplotlib.lines import Line2D

import numpy as np

class HandlerMultipleLines(HandlerLineCollection):
def _my_create_legline(self, idx, xdata, ydata, orig_handle, legend, trans):
legline = Line2D(xdata, ydata)
self.update_prop(legline, orig_handle, legend)
try:
color = orig_handle.ge

元記事を表示

[Python][Tips] 処理時間の計測

https://camp.trainocate.co.jp/magazine/python-time/

上記によると、Python処理の実行時間を測定する方法は以下の3つ。
> (1) time.time() : 最も簡単な実行時間を測定する方法
> (2) time.perf_counter() : 正確に実行時間を測定する方法
> (3) time.process_time() : CPU実行時間のみを測定する方法(sleep時間を除く)

(2)が実用的に使えるので、実際の業務で利用しています。
“`python
import time

start = time.perf_counter() #計測開始
##################################
##### #####
##### 計測したい処理を実行 #####
##### #####
#################################
end = time.perf_cou

元記事を表示

trioによる並行処理③(move_on_after, move_on_at)

前回:[trioによる並行処理②(Event)](https://qiita.com/Kyosuke_Ichikawa/items/aa4f22f4eb6fb9aacb7e)

trioにある便利な関数[move_on_after()](https://trio.readthedocs.io/en/stable/reference-core.html#trio.move_on_after)と[move_on_at()](https://trio.readthedocs.io/en/stable/reference-core.html#trio.move_on_at)を紹介します。

## move_on_after
“`with move_on_after(秒数)“`のようにしてwithブロックを作ることができ、指定した秒数経つとブロックを抜けます。例えば
“`python
import trio

async def main():
start_time = trio.current_time()
with trio.move_on_after(3):

元記事を表示

画像の切り抜き処理

### はじめに
画像認識をする機械学習のモデルを自分で作ってみようと思い、
その下準備として画像の一部を切り抜いて、学習する画像を作成するスクリプトを書きました。

画像が保存されているフォルダを指定するとその配下にあるファイルを一括で加工するようにしています。

実施する内容は以下
・画像をグレースケールにして色の特徴を消す。
・画像から学習したい領域を切り抜いて保存する。

### やったこと
「C:\\XXXXXX\\XXXXXX\\」の下に加工したい画像を置いて、スクリプトを実行すると、
「C:\\YYYYYY\\YYYYYY\\」の下に加工後のファイルを出力します。
パスは実行する環境に合わせて記載してください。

私の場合、Y軸は200~1597 X軸は1024~1568 の長方形で切り取りたかったので、
img_1[200:1597, 1024:1568] としています。

“` python
import cv2
import glob

input_dir = “C:\\XXXXXX\\XXXXXX\\*”
output_dir = “C:\\YYYYYY\\YY

元記事を表示

Sweetvizの日本語文字化けを直す

[sweetviz](https://github.com/fbdesignpro/sweetviz)は2行でEDAをしてくれるpythonのライブラリです。
とっても便利ですが、フォントの問題で日本語が豆腐になってしまうことがあります[^1]。

[^1]: string型の列は棒グラフにならないので、カテゴリ型を用いてる場合に起きる問題です。

ちょっと前のバージョンから以下の一行で直せるようになってます。
“`python
sv.config_parser.read_string(“[General]\nuse_cjk_font=1”)
“`

と、これだけの記事なのですが、せっかくなので何をやっているか解説していきます。

# 何をやってるのか

SweetvizのGithubにおいて、
– sweetviz

元記事を表示

Python Pandas基礎 -Excel・CSVの読み込み-

### 初めに
pythonのpandasについて初学者なりにまとめたいと思います。
学習に使っているのはこちらのキノコードです。

https://kino-code.com/category/introductory-course-pandas/

### CSVファイル

#### 読み込み
使用するCSVファイル
[出典:政府統計の総合窓口(e-Stat)](https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00200521&tstat=000001011777&cycle=0&tclass1=000001094741&tclass2val=0)
「男女別人口-全国,都道府県(大正9年~平成27年)」(総務省)を加工して作成

csvファイルをデータフレームとして読み込むには、read_csv関数を使用します。
read_csv関数の引数に、読み込みたいcsvファイルのパスを指定します。
続いて、引数encodingに文字コードを渡すことで、ファイルを読み込む際の文字コードを指定する

元記事を表示

Python Google検索の順位探索(PC版、スマホ版)

# Python Google検索の順位探索(PC版、スマホ版)

Google検索の順位はWebページがユーザーの目に触れる機会の多さと密接な関係にあり、SEO(検索エンジン最適化 : Search Engine Optimization)などにより上位にあげることができる。今回は対象のWebページがスマホでのGoogle検索で、特定の検索ワードの何番目に出てくるのかを調査するスクレイピングプログラムを紹介する。

## Google検索の順位調査(PC版)
検索ワード「シュレディンガー 猫」で検索し、上位50件を取得するプログラムの例です。
検索結果はURLとタイトルがcsvに吐き出される。

“`python:google_serarch.py
import time
import datetime
import numpy as np
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.op

元記事を表示

Kerasを使って存在しない猫の画像を生成した

pythonの機械学習ライブラリKerasを使ってDCGANを構築し猫の画像を生成してみました。

左が実際の画像/右が生成された画像
![学習データ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2421028/b7e745d8-340a-1687-3f8a-8b3ce341f758.png)![生成データ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2421028/9ce49ac2-6799-1413-3d79-d48cd6bf9409.png)

## DCGANって何?
– そもそもGANとは
GANは生成ネットワークと識別ネットワークの2つのネットワークで構成されています。GANでは生成ネットワークと識別ネットワークを競わせるように学習させることで、本物の様な入力を偽造することができます。
例えるならば、生成ネットワークは偽物を作り出す偽造屋、識別ネットワークは偽物を見つけ出す鑑定士のような役割を担っています。
![GAN

元記事を表示

文章から情報を抽出!Rasaでエンティティ抽出入門

# 今回作るもの
__文章中の情報(キーとなる単語)を抽出する「エンティティ抽出」__ を、チャットボット開発フレームワークである __Rasa Open Source__ を用いて実現する方法を解説します。

具体例として、外食に関する文章に対して、以下のような各種情報を抽出するものを作ります。
![作るもの.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612472/1ad0779f-e772-3d13-f2d3-c3800c61d149.png)

# 概要
冒頭の例のような形で、__Rasaを用いてエンティティ抽出__ をする方法です。

文章からの情報抽出は、自然言語処理の基本であり重要な機能ですよね。
チャットボットであれば、抽出した情報に基づいて、予約・登録等の処理やレコメンド・情報提供をしていく訳なので、キーとなる機能になります。

今回は __自前で訓練データを作成してモデルを作成する__ 方法を取ります。
GiNZAのように、学習済みのエンティティ抽出を提供するライブラリもあります

元記事を表示

Djangoにまつわるコマンドとは

ここで取り上げるのは主に2つです。
1. django-admin
1. manage.py

です

“`terminal
django-admin help –commands
“`

“`
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
“`

manage.pyは通常のpythonファイルになるのでpythonを頭につける必要があります。
“`terminal
python manage.py help –commands
“`

“`
changepassword
c

元記事を表示

Django開発 仮想環境立ち上げと初期設定

VSCode内でディレクトリを作成して、VSCode内でターミナルを開く。

まず最初に仮想環境を作成する。

コードは
“`
python3 -m venv venv
#venvを2回書くことに注意
“`

次に作成した仮想環境をアクティベートするコードを記述。

“`
source venv/bin/activate
“`

Djangoのインストール

Djangoを仮想環境内にインストールする。

“`
pip install django
“`

次にDjangoのスタートプロジェクトコマンドを記述していく。

“`

django-admin startproject todoproject .
#ドット(.)をつける。

“`

次にアプリを立ち上げる。

“`
python manage.py startapp [アプリ名(何でもいい)]
“`

初期設定

settings.pyファイルの設定

まずプロジェクト内にある、settings.py ファイルでhtmlフ

元記事を表示

OTHERカテゴリの最新記事