Python関連のことを調べてみた

Python関連のことを調べてみた
目次

入力した歌詞がどのアーティストっぽいかを判定しその根拠も提示するAIを作った

# 作ったもの
京都大学人工知能研究会KaiRAの11月祭で出すAIデモの1つとして、下記のようなことを行うAIを開発しました。

– **歌詞を入力すると、その歌詞がどのアーティストっぽいかを判定する**
– **予測結果だけでなく、どの部分に着目して判定したかをXAI手法で可視化**

Google Colaboratoryで動きますのでぜひ試してみてください。

https://colab.research.google.com/drive/1DsSVmUxkpAo5qmLDusL-Z25RaGBYTvQ-#forceEdit=true&sandboxMode=true

**StreamlitでWebアプリを作りました!(ただし予測根拠の表示は無し)**

https://artist-prediction.streamlit.app/

# 動作イメージ

試しに、あいみょんの「マリーゴールド」のサビ部分を入力すると、以下のような結果が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

Pythonで綺麗ななコードを書くためのTIPS

## はじめに

最近Pythonのコードを書く機会が増えてきていて、Pythonで綺麗なコードを書くためには、というのを考える機会がありました。
折角の機会なので自分なりに整理した内容をまとめてみました。
プログラミング言語自体はPythonですが、考え方自体は他の言語でも利用できる内容になっていると思いますので、ぜひ参考にして頂ければと思います。

## 綺麗なコードとは

そもそも、綺麗なコードとはどのようなコードのことでしょうか。
理解しやすいコード、テストしやすいコードなど、いろいろな定義ができるかと思います。
今回の記事では、**理解しやすいコードを綺麗なコードの主要な考え方としてとらえて**記事を書いています。

## TIPS1: 三項演算子を利用しよう

例えば以下のようなコードを見てみましょう。

“`python:コード例1
import os

STAGE = os.environ.get(“STAGE”)

if STAGE is None:
LOGGER_TYPE = “INFO”
else:
LOGGER_TYPE = “DEBUG”

元記事を表示

なつめの実の良し悪しを見分けるWebアプリ

:::note info
このブログはAidemy Premiumのカリキュラムの一環で、受講修了条件を満たすために公開しています。
:::

# はじめに

ここではなつめの実を食用に適するか判定するソフトについて紹介します。

**作成したアプリのコード**

https://github.com/YoheiKunita/natsume_app

## なつめの紹介
 2023年の秋、家の畑に生えているなつめを収穫しました。なつめの木といえば街路樹や植木として全国に植えられていますが、一般的にはなつめの実が食べられることはないそうです。原産国の中国では主に干した実を砂糖漬けにしたり、餡にして食べられているそうです。

 日本で食用としているのは、私が住んでいる飛騨地方のみで、半熟の実を甘露煮にして食べるのがポピュラーです。頻繁に食べるわけではないですが、全国的に食べられていると思っていたので意外でした。マイナーな郷土料理と聞くとなんだか愛着が湧いてきます。秋のシーズンになると、なつめの実は道の駅などで販売されます。1袋1キロ入りで800円前後と、そこそこ高値で売れるので根強い人気が

元記事を表示

Gradioでの入力チェックは難しい? Gradioチャットアプリ ~thenとsuccess~

# Gradioでチャットアプリ

**「Gradio」** 聞いたことない方もいるかと思いますが、機械学習のために作られたPythonの簡易Webアプリ作成ライブラリです。

https://www.gradio.app/

GPTの[**コードインタプリター**が](https://www.watch.impress.co.jp/docs/topic/1520290.html)使えるこんなのも作れます。(オリジナル作成)

https://huggingface.co/spaces/nekoniii3/GPT_Chat_Code_Interpreter

少ないコードで入出力を伴うアプリが簡単にできるので、最近では生成AIのデモなどに多く利用されています。ちなみに画像生成AI用ツール[**stable-diffusion-webui**](https://github.com/AUTOMATIC1111/stable-diffusion-webui)もGradioでできています。

最近ではLLMに対応するためチャットUIが追加されました。
コードは[こちらの

元記事を表示

ZappaでFlaskをLambdaにデプロイ

## はじめに
ご覧いただきありがとうございます!
zappaを使ってLambdaにデプロイする方法を自分の備忘録も兼ねて書いてみました。
初心者なので、間違いがあればご指摘いただけると幸いです。

## zappaとは?
zappaとは、AWS Lambda上でFlaskやDjangoなどのWebアプリケーションを簡単にデプロイできるフレームワークです。
zappaを使うとLambda関数やAPI Gatewayの設定など、複雑なAWSリソースのセットアップを自動的に行なってくれるため、手動で設定する手間を省いてくれます。

## 1. Flaskをインストール
pythonの仮想環境を用意してFlaskをインストールします。

“`
$ pipenv install Flask
“`
## 2.ファイルの作成
“Hello world!”を表示するファイルを用意します。

“`hello.py
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def hello():

元記事を表示

Blender 4.0 のPython APIで物体を発光・移動スクリプトを作成してみた

## はじめに

この記事では、Blender 4.0のPython APIを使用して、オブジェクトを発光させつつ動かすスクリプトを作成する方法について解説します。

## デモ動画

@maki.sunwood.ai.labs

Blenderの Python APIで物体の発光/移動処理をしてみました 斜めに映るフォグのライティングがいい感じにできた! クライミングジム クライミングジムソレイユ ボルダリング AI課題 スポーツAI ボルダリングAI 3dcg

♬ オリジナル楽曲 – Maki@sunwood.ai.labs – Maki@sunwood.ai.labs

こちらの記事もおすすめ

https://hamaruki.com/starting-chatvrm-with-docker/

https://hamaruki.com/generate-3d-models-from-images-using-wonder3d/

## Blender 4.0 と Python API

Blenderは、3Dグラフィックスを作成するための強力なオープンソースソフトウェアです。Blender 4.0は、より進化した機能と使いやすさを提供します。Python APIを使用すると、Blenderの機能

元記事を表示

APIを使ってStreet Viewから屋外の画像だけを取得したい

# はじめに
今回は、[Street View Static API](https://developers.google.com/maps/documentation/javascript?hl=ja)というAPIを使用してStreet Viewから位置情報に基づいた画像を取得してみます。

研究でGoogle Street Viewから画像を取得したい機会があったのですが、その時に屋外の画像だけ欲しいなと思っていました。

方法を調べていたんですが、公式ドキュメントの端っこにしか情報がなく結構時間かかってしまったので、メモとして残しておきます。

# 解決したいこと
何も指定しないと、緯度経度によっては、室内の画像も取得できてしまう。(室内の写真なんていらん!)

こんな感じ↓

35.01412</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>streetview</div>
<div class='tag-cloud-link'>googlecloud</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/kitsune_yk/items/ac30cb3ca5c85d3558bf'>元記事を表示</a></div>
<h3 id=Pythonでエラーコードの一覧を作成する

OSやライブラリのエラーコードからその意味を引きたいことがしばしばあります。

Pythonでエラーコードのスクレイピングし、JSONで保存するスクリプトをです。

ソース全体は以下を参照ください。

https://github.com/CASL0/error_codes

## 対応エラーコード
### Windows システムエラーコード
GetLastError の戻り値とその説明をまとめています。
以下のページから収集します。
– https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes–0-499-

### errno
Linux カーネルのエラーコードとその説明をまとめています。
以下のページから収集します。
– https://www.thegeekstuff.com/2010/10/linux-error-codes/

### curl エラーコード
curl のエラーコードとその説明をまとめています。
以下のページから収集します。
– https://curl.se/lib

元記事を表示

Pythonで「文字列を指定した長さにして左寄せ/中央揃え/右寄せを行う(ljust, center, rjust, zfill)」の動作を確認してみた

# 概要

Pythonで「文字列を指定した長さにして左寄せ/中央揃え/右寄せを行う(ljust, center, rjust, zfill)」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/string/index21.html

# 実装

以下のファイルを作成しました。
“`sample.py
print(“[” + “Apple”.ljust(8) + “]”)
print(“[” + “Apple”.center(8) + “]”)
print(“[” + “Apple”.rjust(8) + “]”)
print(“”)
print(“Apple”.ljust(8, “_”))
print(“Apple”.center(8, “p”))
print(“Apple”.rjust(8, “+”))
#print(“Apple”.rjust(8, “*+”))
print(“”)
print(“Apple”.ljust(3))
print(“Apple”.center(3))
print(“Apple”

元記事を表示

Pyvista の Export scene as HTML 機能を使う

Pyvista の Export scene as HTML 機能を使うと、可視化した 3D データをほかの人に見せやすいので、簡単に紹介します。

# 以下のデモのテスト環境

* WIndows 11
* Pyvista 0.42.3
* Jupyterlab 4.0.2
* ipywidgets 8.1.1

* trame 3.3.0

# 概要

`Jupyter lab` 内で `Pyvista 0.42.3` を使って、`Plotter` による 3D 可視化を行ったとき、ツールバーの右端に、 ”Export scene as HTML” というボタンがあります。(ドキュメントを見たところ 0.40 以降では存在していると推測します。)

この機能を使って生成した HTML をブラウザで開くと、 vtk.js を使って 3D オブジェクトを表示します。マウス操作で回転と拡大縮小ができるので、解析結果の可視化を人に渡して見せるのに使えます。つまり paraview や Python をインストールしていない人にも、3D のままのデータを見せることが簡単にできます。

P

元記事を表示

【matplotlib】random_walkでお絵描きしてみた

## はじめに
Pythonのmatplotlibを使用してドリッピングやマーブリングのような画像を出力します.
完全にお遊びです.
(GenerativeAIで画像生成できるってのに何やってんだか…)

## 動作環境情報
– Python 3.12.0
– matplotlib 3.8.1

## 手法
四方八方にランダムに動く線を重ねて重ねて描いてみます.

### ソースコード
“`random_walk_paint.py
import numpy as np
from random import random
import matplotlib.pyplot as plt
from math import *

def random_walk(N):
x, y = 0, 0

x_list=[0]
y_list=[0]
for n in range(N):
theta=2.0*pi*random()
x = x+cos(theta)
y = y+sin(theta)
x_li

元記事を表示

Pythonがなくなったと思った話

## Pythonがない
“`zsh
$ python -v
zsh: command not found: python
“`

だけど`pyenv versions`すると確かにsystemにPythonが入ってる。
“`zsh
$ pyenv versions
system
* 3.11.2 (set by /Users/username/.pyenv/version)
“`
もしや…
“`zsh
$ which python3
/usr/bin/python3
“`
エイリアスを登録すればいい話だった。`~/.zshrc`に`alias python=’python3’`を書き込んで解決。
“`zsh
echo “alias python=’python3′” >> ~/.zshrc
“`

元記事を表示

ChatGPTと作る 和歌生成AI : 2. LSTM 改良編

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えしておりますが、以前にやりました[「ChatGPTとPythonで作る和歌LSTM」](https://qiita.com/maskot1977/items/1c0e1656e49df7cffd40)の続編をしたいと思います。

本日も、用いる和歌のデータは、国際日本文化研究センターで公開されている [「和歌データベース」](https://www.nichibun.ac.jp/ja/db/category/waka/) を利用します。

それではChatGPT先生、よろしくお願いします。

### **assistant**:

もちろんです。引き続きのセッションに参加できてとても嬉しいです。以前は和歌を生成するためのLSTMモデルを作成しました。今回はどのような話題や進行で進めていきましょうか?

もし具体的なアイデアがありましたら、教えてください。それがない場合は、例えば以下のような方向性を提案できます:

1. 既存のモデルを精緻化する。例えば、より大きなデータセットで訓練する、モデルパラメータをチューニングす

元記事を表示

【Python】型ヒントのtyping.Anyとobjectの違いについて

Pythonで型ヒントを書くとき、`typing.Any`と`object`、どっちを使えばいいの?とわからなくなってしまったので、両者の違いについてまとめてみました。
~~1年以上放置してた下書きの供養なんて言えない~~

※PyCharm環境での作業を想定しています。

# 更新履歴
2023/11/17 : 初版

# 環境
* Windows10
* Python3.10
* PyCharm Community Edition 2021.2.2

# 1. 結局何が違うの?

有識者からは「全然違うだろ」と言われそうですが、まとめるとこんな感じです。

## typing.Any
* **型チェックしないよ**
* コード補完もしないよ!自分で全部頑張ってね!

## object
* **型チェックするよ**
* コード補完はするけど、あんまり有用じゃないよ

# 2. 具体例

具体例でそれぞれ(+ 一般人代表`int`)の特徴を見ていきます。

※`Redecla

元記事を表示

PythonでGPT-4 Turboを使用したシンプルな対話型AIチャットボットの構築

# はじめに
GPT-4 Turbo(128K)早く使いたいですよね。
PythonでGPT-4 Turbo(gpt-4-1106-preview)を使用したシンプルな対話型AIチャットボットを作成しました。
応用編として、いくつか機能追加したソースも上げておきますので、皆様のお役に立てれば幸いです。

OpenAI API Reference

https://platform.openai.com/docs/api-reference/chat/create

ReadMe (OpenAI Python API library)

https://github.com/openai/openai-python

# ソースコードについて
## ソース概要
– basic_chatbot.py
– 物凄くシンプルな(コンソール上での)対話型AIチャットボット
– チャットを終えるには`exit`と入力すれば抜けられます

– chatbot.py
– basic_chatbot.py を応用して、以下の機能追加したものになります
– カラーテキスト出力

元記事を表示

【Google Cloud】 Firestoreデータベースにローカルから接続する方法【Python】

# はじめに

 Firestoreは、NoSQLのドキュメントデータベースです。

 この記事では、Google Cloud で Firestore を使い始めるための手順を紹介します。具体的には、Pythonのプログラムを用いてローカル環境からGoogle Cloud上のFirestoreにアクセスを行い、データを格納するところまでを目指します。

* 公式ドキュメント
https://cloud.google.com/firestore/docs?hl=ja

(公式ドキュメントが一番参考になるので、何か困ったら公式ドキュメントを参考にしましょう)

:::note warn
 本記事は、2023年11月17日時点の情報です。
 名前が似ている「**Filestore**」というサービスもありますので、間違えないように気をつけましょう。
 モード選択では、ネイティブモードを選択しています。
:::

# 実施環境

* OS:macOS Ventura 13.5 (M2 mac)
* ブラウザ:Google Chrome 119.0.6045.123(Official Build

元記事を表示

Pachinko Allocation Model (PAM) をCythonで高速化した

## はじめに
トピックモデルとは、文章データの潜在的なトピックを推定する確率モデルです。
本モデルを用いることで、以下のような情報が得られます。
– トピックに基づく文章のクラスタリング
– ある文章を構成するトピックの寄与(document-topic distribution)
– あるトピックを構成する単語の寄与(topic-word distribution)

代表的なトピックモデルとして、Latent Dirichlet Allocation (**LDA**; 潜在的ディリクレ配分法) [[1](https://jmlr.csail.mit.edu/papers/v3/blei03a.html)] が広く知られており、Qiitaにおいても盛んに議論されています。

今回はあえてPachinko Allocation Model (**PAM**; パチンコ配分法?) [[2](https://doi.org/10.1145/1143844.1143917)] というマイナー手法に焦点を当て、実装に取り組みました。

※ 本記事ではPAMアルゴリズムの数学的な解釈について

元記事を表示

SVGからPathマークアップ構文への変換

# Streamlitアプリ: SVG to Path

Check out this awesome Streamlit app I built that converts SVG to Path markup syntax! You can try it out [here](https://svg-to-path.streamlit.app/). #streamlit #python

https://svg-to-path.streamlit.app/

## はじめに

このStreamlitアプリケーションでは、SVG形式のデータをPathマークアップ構文に変換する機能が提供されています。[こちら](https://svg-to-path.streamlit.app/)から試してみてください。

## アプリケーションの機能

– SVGデータを入力し、Pathマークアップ構文へ変換できます。
– インタラクティブなUIを使用して、変換結果をリアルタイムで確認できます。

## スクリプトの概要

アプリケーションの実装には、Streamlitを使用して構築されたPyth

元記事を表示

Qittaの良記事をピックアップして毎日投稿するBotを作ったら、思った以上に面白い記事が見つかった話

## はじめに
初学者です。最近WebAPIについて学んでいて
「QittaAPIを使って面白いこと∧簡単にできそうなこと∧自分もあって嬉しいもの」
ということで、
**1週間前に投稿されたQittaの記事のうち、最もいいねがついた記事(=この一週間で最も注目度が高いと思われる記事とする)を毎日投稿するBotを作りました。**

## 作ったBot
以下Xアカウントで毎日朝7時に投稿しています。
[Xアカウント(よければフォロー頂けると励みになります)](https://twitter.com/kissshot_skup)

こんな感じです。
![スクリーンショット 2023-11-17 202757.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2639414/b3af5be3-5de0-4c03-f8c1-8b386a0cc0ff.png)

とりあえず見てみるかという気持ちになりませんか?
自分では検索して意図的に探さないような、面白い記事が自動的に目に入るので、
アンテナが広がる気がしています

元記事を表示

PandasのData FrameとElasticsearchのindexを相互変換する

# はじめに

Elasticsearchの特定のインデックスにサンプルデータを投入したい。でも手元にあるのはキー項目は共通な別々のCSVファイル。えーこれ全部手でマージすんの? それかスクリプト書く? めんどくさ。。 そんな経験みなさんにもありますよね?

そんな時、(結局Pythonスクリプトは書きますが)Elandを使うとPandasのData FrameをそのままElasticsearchとやりとりできるので便利です。というかPandasが便利です。

# 依存ライブラリ

今回、Pythonのpandas, elasticsearch, elandの各ライブラリを使いますので、インストールされていない場合は以下のコマンドでインストールします。

“`
$ pip install pandas elasticsearch eland
“`

Elandの詳細については[ドキュメント](https://eland.readthedocs.io/en/v8.11.0/reference/index.html)を確認してください。

# CSVデータをData Frameに読み込

元記事を表示

OTHERカテゴリの最新記事