- 1. Amazon Bedrock 全LLM 日本語能力比較(2024/7/1 Claude3.5 Sonnet, AI21Labs Jamba-Instruct 追加版)
- 2. Pythonで並行リクエストを処理する(aiohttp)
- 3. pythonでcurl
- 4. ABC360(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)
- 5. 【Azure OpenAI】Embeddingでドキュメント検索をする#part1
- 6. ねぶたの画像とそのねぶたの解説文の書かれた画像をくっつけた画像を作成していくPGM
- 7. ねぶたの画像とそのねぶたの解説文の書かれた画像をくっつけた画像を作成していくPGM
- 8. 主成分分析のbiplotを回帰で使う
- 9. 【初心者向け】仮想環境venvとは?venvの使い方
- 10. pytrendsでGoogleトレンドデータを取得してみる
- 11. 20240701_履歴DB、差分出力
- 12. Pythonで、n進法を用いて四則演算ができる計算機を作ってみた
- 13. Pythonで日数が計算できるプログラムを作ってみた
- 14. 20240701_冪等性
- 15. pythonのloggingが便利だと知った話
- 16. sjoinで世界中のタイムズスクエアのデータセットをつくりたい
- 17. Amazon Bedrock Converse API で Claude3 の JSON モードを利用する
- 18. Pythonで単一換字式暗号(アルファベット、英語)の解読をしてみた。
- 19. mod p で N 以下の正整数の逆元を動的計画法を用いてO(N)で列挙する方法!【競技プログラミング】
- 20. Python_Googleアラート_240701
- 21. Pythonで〇×ゲームのAIを一から作成する その94 ゲーム木を描画する GUI の作成
Amazon Bedrock 全LLM 日本語能力比較(2024/7/1 Claude3.5 Sonnet, AI21Labs Jamba-Instruct 追加版)
Claude3.5 Sonnet、Jamba-Instructが増えたので全LLMの日本語能力をチェックします。
# コード
“`Python
import boto3prompt=”質問:日本における味噌汁の作り方を詳しく日本語で説明してください。”
bedrock_us_east_1 = boto3.client(“bedrock-runtime”, region_name=”us-east-1″)
bedrock_us_west_2 = boto3.client(“bedrock-runtime”, region_name=”us-west-2″)# なんでもモデル関数
def invokeNandeModel(modelId, prompt, boto):
messages = [{“role”: “user”, “content”: [{“text”: prompt}]}]
inferenceConfig = ({“maxTokens”: 2000,”temperature”: 0.0})
response = boto.converse(
Pythonで並行リクエストを処理する(aiohttp)
# 1. はじめに
並行リクエストは、複数のHTTPリクエストを同時に処理するために使用されます。
これにより、複数のAPIエンドポイントからのデータ取得や、複数のサーバーへの同時アクセスが効率化されます。# 2. 必要なライブラリのインストール
まず、aiohttpをインストールします。以下のコマンドをターミナルで実行してください。“`bash
pip install aiohttp
“`# 3. 並行リクエストのサンプルコード
以下のコードは、複数のURLに対して並行してGETリクエストを送信し、そのレスポンスを取得する例です。“`python
import aiohttp
import asyncioasync def fetch(session, url):
async with session.get(url) as response:
return await response.text()async def main(urls):
async with aiohttp.ClientSession() as se
pythonでcurl
# pythonでcurl
Pythonでcurlコマンドを実行するには、subprocessモジュールを使用するのが一般的です。
また、同様の機能を提供するライブラリとして、requestsモジュールを使用することもあります。それぞれの方法についてサンプルスクリプトを示します。# subprocessでcurl
“`python
import subprocess# curlコマンドを定義
curl_command = [
“curl”,
“-X”, “GET”, # HTTPメソッド
“https://jsonplaceholder.typicode.com/posts/1”, # リクエストURL
]# subprocessでcurlコマンドを実行
result = subprocess.run(curl_command, capture_output=True, text=True)# 結果を出力
print(“Response code:”, result.returncode)
print(“Response body:”, r
ABC360(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)
# ABC360(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)
# A問題
– ご飯 `R` が一番左にあれば,必ず味噌汁 `M` は右側に行く.
– 味噌汁 `M` が一番右にあれば,必ずご飯 `R` は左側に行く.
“`A.py
“””
<方針>
– ご飯 `R` が一番左にあれば,必ず味噌汁 `M` は右側に行く.
– 味噌汁 `M` が一番右にあれば,必ずご飯 `R` は左側に行く.
–
“””
# 入力を受け取る.
S = input()# ご飯が一番左 or 味噌汁が一番右 の時,
if(S[0]==”R” or S[2]==”M”):
# Yes を出力
print(“Yes”)
else:
# No を出力
print(“No”)
“`# B問題
– 文字を見る間隔 `w` を `1<=w<|S|` で順番に変化させる. - 文字を見始める位置 `c` を `0<=c
【Azure OpenAI】Embeddingでドキュメント検索をする#part1
## はじめに
AzureOpenAI studioにてデプロイ可能なEmbedding(埋め込み)を使用したデータ検索について調べてみたのでまとめました。
※RAGについて詳しいことが気になる方はほかの方の記事を読んだほうがいいかもしれません。機械学習未経験の方へ向けた記事となっております。今回はEmbeddingモデルをデプロイしてベクトル同士を比較するところまで行います。
## Embeddingとは
>エンベディング(embedding)とは、単語やテキストなどのデータを、AIが扱いやすいように、数値ベクトルデータに変換する技術のことです。これによって、単語やテキストなどのデータ同士が意味的に近いかどうか、AIが判別できるようになります。「引用元」
https://note.com/eagency/n/nc0d5de8e5535
数値に変換してあげることで自然言語の意味もデータとして扱えるようになります。
## ベクトルとは
数学におけるベクトルは空間上における力や速度を矢印の向きと長さを用いて表現しています。![image.png](https://qiit
ねぶたの画像とそのねぶたの解説文の書かれた画像をくっつけた画像を作成していくPGM
ねぶたの画像とそのねぶたの解説文の書かれた画像をくっつけた画像を作成していくPGM
ねぶたのアーカイブのサイトからねぶたの写真の画像ダウンロードと解説文をダウンロードして、
解説文の画像を作ってから、ねぶたの写真画像とそのねぶたの解説文の画像をくっつけた画像を
作成していくPGMをpowershellとpythonで作成しました.
作成手順
以下の手順で画像リストを作成しました。
1-a.ねぶたのサイトからサクラエディタによる手動スクレイピングでねぶたの紹介ページのURLの一覧
をファイルに出力する(URL:https://www.nebuta.jp/)1-b.ねぶたのサイトからサクラエディタによる手動スクレイピングでねぶたのテーマの一覧
をファイルに出力する(URL:https://www.nebuta.jp/)2. 1-aで取得したURLリストをpowershellスクレイピングで写真の画像と解説文をそれぞれダウンロードする
3. 2で取得したねぶたの解説文と1-bで取得したねぶたのテーマの、文字列をpowershell
主成分分析のbiplotを回帰で使う
先日主成分分析で因子負荷量と第一第二主成分をプロットするbiplot関数を作ったのですが、これを回帰に応用してみようと思います。
使用するデータはボストン住宅価格のデータセットです。
“`Python3
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
def biplot_spv(df, y):
for col in df.columns:
df[col] = (df[col] – df[col].mean()) / df[col].std()
model = PCA()
model.fit(df)
df_pc = model.transform(df)
com = model.components_
evr = model.explained_variance_ratio_
fac = []
for i in range(len(evr
【初心者向け】仮想環境venvとは?venvの使い方
## 仮想環境とは
仮想環境とは、文字通り仮想の環境のことなのですが、言葉で説明するのは難しいので
仮想環境があった場合となかった場合、どのような違いが表れるのかを説明します。#### 仮想環境が無い場合
Python3.6がインストールされいるパソコンを考えます。
そのパソコンのデスクトップフォルダにApp.pyを作成し、そのPythonファイルでプログラムを書いたとします。その後、Pythonをアップデートし、Python3.9になったとします。
この時、App.pyはPython3.6を前提として開発したものなので、Pythonのアップデートによりバグが発生したり、動かなくなってしまう可能性があります。#### 仮想環境がある場合
同様にPython3.6がインストールされているパソコンを考えます。
パソコンのデスクトップに「Work_Python3.6」という作業フォルダを作成し、このフォルダで仮想環境をON(active)にします。このフォルダ内に同様のApp.pyを作成します。
Python3.9を使用したApp.pyを作成したくなった場合、デスクトップに新しく「
pytrendsでGoogleトレンドデータを取得してみる
## はじめに
pytrendsは[Googleトレンド](https://trends.google.co.jp/trends/)のデータを取得するためのライブラリです。https://github.com/GeneralMills/pytrends
## インストール
`pipenv`が導入されている前提で進めます。
“`bash
$ pipenv install pytrends
“`## get started
まずは、動かしてみます。今日本でトレンドになっている検索ワードを取得してみます。
“`python
from pytrends.request import TrendReqpytrends = TrendReq(hl=”ja-JP”, tz=360)
print(pytrends.trending_searches(pn=”japan”))
“`出力はこのようになります。
![console](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403148/542fd71
20240701_履歴DB、差分出力
# 履歴DB,差分出力
“`
import os
import pandas as pd
from datetime import datetime, timedeltadef save_snapshot(reference_db: pd.DataFrame, history_dir: str) -> None:
“””
リファレンスDBの断面をpickle形式で保存する詳細設計:
1. 現在の日時をYYYYMMDD_HHMMSSの形式で取得
2. ファイル名を ‘reference_snapshot_YYYYMMDD_HHMMSS.pkl’ の形式で生成
3. history_dirとファイル名を結合してファイルパスを生成
4. pd.DataFrameをpickle形式で指定したパスに保存Args:
reference_db (pd.DataFrame): 保存するリファレンスDBの断面
history_dir (str): 履歴を保存するディレクトリのパスR
Pythonで、n進法を用いて四則演算ができる計算機を作ってみた
### 前置き
以前、10進法を用いて四則演算ができる計算機のプログラムコードを紹介した。
今回はn進法を用いて四則演算ができる計算機を作成するためのプログラムコードを紹介したい。### n進法とは
N個の記号を使って数字を表す方法である。
例えば、9進法においては、0,1,2,3,4,5,6,7,8の9種類の記号の数字が表されている。
私たちは一般的には10進法、0,1,2,3,4,5,6,7,8の10種類の記号の数字を用いている。
引用元:https://manabitimes.jp/math/1544### プログラムコード
“` python
def to_base_n(number, base):
if number == 0:
return ‘0’
digits = []
while number:
digits.append(int(number % base))
number //= base
return ”.join(str(x) for x in digits[::-1])def from_bas
Pythonで日数が計算できるプログラムを作ってみた
### 前置き
明日から7月に入り、2024年も日数的には折り返し点になる。そこで、今日はPythonで、日数が計算できるプログラムコードの作成に着手してみた。### プログラムコード
“` python
from datetime import datetime# ユーザーからの日付入力を取得する関数
def get_date_input(prompt):
while True:
try:
date_str = input(prompt)
# 日付フォーマットは”YYYY-MM-DD”を使用
date_obj = datetime.strptime(date_str, “%Y-%m-%d”)
return date_obj
except ValueError:
print(“日付の形式が正しくありません。再度入力してください。”)# 2つの日付の間の日数を計算する関数
def calculate_days_bet
20240701_冪等性
# 冪等性
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782003/367a862d-73d6-0627-cb46-0c041dabf8a4.png)
import pandas as pd
from datetime import datetime, timedeltadef process_7_days_before(db1: pd.DataFrame, db2: pd.DataFrame) -> tuple[pd.DataFrame, pd.DataFrame]:
“””
受け渡し日の7日前の処理を実行する。詳細設計:
1. 現在日付から7日後の日付を計算
2. DB1から未処理(status=0)かつ受け渡し日が7日後のレコードを抽出
3. 抽出したレコードをDB2に追加
4. 処理したレコードのステータスを1(7日前処理済)に更新Args:
db1 (pd.DataFram
pythonのloggingが便利だと知った話
# 記事の対象者
– printでlogを出している
– pythonの標準モジュールloggingを使ってみたい# printでのlog出力
例えばログに以下の内容を含めたいとします
– logレベル(debug, info, warn, error, critical)
– 時間
– モジュール名
– 関数名
– 任意のメッセージprintを使った場合、以下のような関数実装になるかなと思います
“`
from datetime import datetime as dtdef print_log(log_level: str, module_name: str, func_name: str, message: Optional[str] = None):
“””printでlogを出す関数Args:
log_level (str): logレベル
module_name (str): モジュール名
func_name (str): 関数名
message (Optional[str]
sjoinで世界中のタイムズスクエアのデータセットをつくりたい
## タイムズスクエアはニューヨークだけじゃない!
旅行が好きなのですが、タイムズスクエアってたくさんあるんですね。ということで、`Google Maps API`と`GeoPandas`を使って世界のタイムズスクエアのデータセットをつくります!最終的なコードはこちらです。
“`python
[in]
import pandas as pd
import requests
import geopandas as gpddef get_times_square_locations(api_key, query=’timessquare’):
# Google Places APIのエンドポイント
url = f’https://maps.g
Amazon Bedrock Converse API で Claude3 の JSON モードを利用する
## はじめに
株式会社 NTT データ デジタルサクセスコンサルティング事業部の [@ren8k](https://qiita.com/ren8k) です.
Claude3 では,Tool use を利用することで,JSON モード (JSON 形式のレスポンスを取得する手法) が利用可能です.[Anthropic のユーザーガイド](https://docs.anthropic.com/en/docs/build-with-claude/tool-use#json-mode)には JSON モードの説明があるのですが,AWS の公式ドキュメントには記載がなく,JSON モードを試した記事や実装例なども見当たりませんでした.そこで本記事では,Claude3 の JSON モードについて調査し,Converse API で実際に検証した結果をまとめます.JSON モードを検証するにあたり,2024/6/20 にリリースされた Claude3.5 Sonnet を使用し,以下の 3 つのユースケースを題材として検証しました.
– 感情分析
– クエリ拡張
– 画像分析:::
Pythonで単一換字式暗号(アルファベット、英語)の解読をしてみた。
# はじめに
この暗号、解読できますか?
![sentence1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3775294/09fca86f-1e6c-e0ff-70b3-45f5f27cdb61.png)自然言語処理を学んでいて思い出したのがシャーロックホームズの踊る人形であった。
ホームズは優れた状況判断能力を活かし、さらに頻度分析を用いて暗号を解読していた。
私にもPythonを用いて暗号解読できそうな気がしたのでこの記事を作成した。
単純な換字式暗号(アルファベット、英語)の解読を試みる。(この暗号は下記サイトを利用して作った。そもそも踊る人形にでてくる暗号表記のため解読表が存在するのだが、今回は解読表がないものとして利用する。)
**解読できる暗号の想定**
・単純な換字式暗号文であること。(図形にはアルファベットが割り振られている)
・文章は簡単な英語であるという想定。
・単語間にちゃんとスペースがある。
・特殊な記号、特殊な固有名詞は使われていないものとする。#
mod p で N 以下の正整数の逆元を動的計画法を用いてO(N)で列挙する方法!【競技プログラミング】
## はじめに
こんにちは!!競技プログラミングをやっている高校生のButterFlvです!今回は $\pmod{p}$ で $N$ 以下の正整数の逆元を $O(N)$ で列挙する方法を書いていきます。かなり有名な手法ですが備忘録として書きます。証明がかなり面白いです!!
## 忙しい人向け
1. 配列 $\mathrm{inv}$ を用意します.
1. $\mathrm{inv}[1]=1$ を初期値として与えます.
1. 以下のループを $i=2,3,\cdots ,N$ で実行します.
* $\mathrm{inv}[i]=-(p\ /\ i)\cdot \mathrm{inv}[p\ \\% \ i]\ \\% \ p$
1. $\mathrm{inv}[i]$ にアクセスすれば$\pmod{p}$ における $i\ (1\le i\le N)$ の逆元を $O(1)$ でとってくることができます.## 証明
$a$ を $b$ で割った商を $a\ /\ b$ , 余りを $a\ \\% \ b$ とする.
逆元を考えたい正整数 $a\ (\ge 2)
Python_Googleアラート_240701
### Windows 11、更新プログラム(KB5039302)により繰り返し再起動する問題発生 | TECH+(テックプラス)
Windows 11の更新プログラム(KB5039302)により、一部のデバイスで繰り返し再起動する問題が発生しています。特に仮想化機能を利用しているデバイスで発生する可能性が高く、回復操作が必要となる場合があります。Microsoftは問題の解決に取り組んでおり、今後のリリースで修正を含む更新プログラムを提供する予定です。影響を受けたユーザーは、Windows 回復環境(Windows RE)を使用して更新プログラムをアンインストールする必要があります。
#### https://news.mynavi.jp/techplus/article/20240630-2975409/
—
### 403 Forbidden
アクセスが拒否されました。アクセス権限がありません。 (16 bytes)#### https://www.asahi.com/and/pressrelease/424854544/
—
### おけ様のPython 3 エ
Pythonで〇×ゲームのAIを一から作成する その94 ゲーム木を描画する GUI の作成
# 目次と前回の記事
https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0
https://qiita.com/ysgeso/items/0bad81b51c0ccbdbc3c7
## これまでに作成したモジュール
以下のリンクから、これまでに作成したモジュールを見ることができます。
| リンク | 説明 |
|:–|:–|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/094/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/094/ai.py) | AI に関する関数 |
| [util.py](https://github.com/ysgeso/marubatsu/blob/master/094/util.py) | ユーティリティ関数の定義。現在は `gui_pl