- 1. 2024年版 reCAPTCHAの突破(nextCaptcha)
- 2. 【ゼロから作るDeepLearning】mnistデータセットの読み込みエラーの対処
- 3. df.assign(column=lambda)でif文がうまく機能しない件
- 4. GDALでCSVファイルをGeoPackageファイルに変換する
- 5. Pythonで書いたプログラムを実行ファイル(exe)にする【覚書】
- 6. Slack経由でRAGにコードレビューを依頼してみた
- 7. LeetCode練習記録
- 8. 876. Middle of the Linked List
- 9. 1342. Number of Steps to Reduce a Number to Zero
- 10. 412. Fizz Buzz
- 11. LangChainを用いて大量ファイルをロードするVectorDBを作ってみた(3)
- 12. 1672. Richest Customer Wealth
- 13. LeetCode 1480. Running Sum of 1d Array
- 14. 【3ヶ月でFlask基礎固め】 2 . SNSアプリを作ってみた
- 15. Python クラス作成(備忘録)
- 16. FlaskアプリでCeleryを使ってバックグラウンドタスクを実行する方法
- 17. Chromaで埋め込みを体感してみる
- 18. レビュー分析AI (ReviewAI) に新機能:観点の詳細を確認する機能を実装しました。
- 19. 【Python】雇用保険の基本手当の計算
- 20. 重回帰分析で重判別分析
2024年版 reCAPTCHAの突破(nextCaptcha)
## reCAPTCHA v2 の非表示を数秒で解決する
![nextcaptcha price](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785580/f3022f34-209f-d214-12c3-bfb1ed79db63.png)
NextCaptcha は reCAPTCHA v2 Invisible CAPTCHA をバイパスします。従量課金制の CAPTCHA ソルバー サービスです。
1. NextCaptcha に サインアップ して、CAPTCHA ソルバー サービスの無料トライアルを入手してください
2. ターゲットの websiteKey を使用して API リクエスト タスクを構築します
3. CAPTCHA で保護されたページで g-recaptcha-response を送信し、reCAPTCHA v2 の Web サイトまたは API データをスクレイピングします
## ステップ1: NextCaptchaクライアントキーを取得する
NextCaptcha ht
【ゼロから作るDeepLearning】mnistデータセットの読み込みエラーの対処
## はじめに
オライリー社の『ゼロから作るDeepLearning』で画像認識の勉強中に、MNISTデータセットの準備で詰まったので解決法を共有します## 問題
P.72 3.6.1 MNISTデータセット
用意されているスクリプトのload_mnist()関数を実行時、以下のエラーが出る
“`python
(X_train, t_train), (X_test, t_test) = load_mnist(flatten=True, normalize=False)# エラーコード ——————————————————————
HTTPError: HTTP Error 403: Forbidden
“`
エラーの原因を調べてみると
サイト側のアクセス制限によりダウンロードができないらしい## 解決方法
sklearnのfetch_mldata関数を利用
“`python
from sklearn.datasets import fetch_openml
from sklear
df.assign(column=lambda)でif文がうまく機能しない件
## 概要
以下のコードの実行するとどうなるでしょう?
### コード
“`python
import pandas as pd
df = pd.DataFrame(data={ “A”: [1, 0, 1], “B”: [101, 102, 103]})
df = df.assign(C=lambda x: x.B if x.A == 1 else 0)
df
“`### 結果
“`shell
—————————————————————————
ValueError Traceback (most recent call last)
/var/folders/vr/jqnz40rd3hnfhg8qrp388zyr0000gn/T/ipykernel_29170/1740181337.py in ?()
1 import pandas as pd
2 df = pd.DataFrame(dat
GDALでCSVファイルをGeoPackageファイルに変換する
# はじめに
以下の流れで GDAL を使用し、CSV ファイルを GeoPackage ファイルに変換するテクニックを知ったので、備忘録として残しておきます。
経緯
1. ogr2ogr コマンドで CSV ファイルを GeoPackage ファイルに変換
2. 変換されたが、属性情報が全て文字列型となった
3. VRT ファイルを用いて属性情報の型を指定して変換する手法を試す
4. 変換成功。ただし、属性情報を VRT ファイルに直接記述するのは手間がかかる
5. 属性情報の型を Python の pandas で取得し、VRT ファイルに書き込む方法を採用
6. CSV ファイルを GeoPackage ファイルにうまく変換できるようになった# 実行手順
## 1. 使用するツール
– M2MAC
– GDAL
– python
– pandas## 2. データの準備
以下のサイトからデータ「ケース 01\_堤防破堤」をダウンロードして、解凍します。
[https://www.geospatial.jp/ckan/dataset/dataset](https
Pythonで書いたプログラムを実行ファイル(exe)にする【覚書】
Pythonのコードをexe形式に変換する方法はいくつかあります。一般的な方法を以下に示します。
通常の変換:
“`
pyinstaller your_script.py
“`これにより、your_script.pyが含まれるディレクトリにdistというフォルダが作成され、その中にyour_script.exeが生成されます。
コンソールを非表示にする場合:
“`
pyinstaller –noconsole your_script.py
“`
この場合、実行時にコンソールが表示されません。アイコンを指定する場合:
“`
pyinstaller –icon=your_icon.ico your_script.py
“`your_icon.icoは、アイコンファイルのパスに置き換えてください。
コンソールを非表示にしてアイコンを指定する場合:
“`
pyinstaller –noconsole –icon=your_icon.ico your_script.py
“`
これにより、コンソールが表示されず、指定したアイコンがアプリケーション
Slack経由でRAGにコードレビューを依頼してみた
## はじめに
プログラミングを書き始めた頃は独りよがりなコードを書いていました。当然「**可読性の高いコード**」とは遥かに遠いコードを書いていました。
ただ、チームプロジェクトに飛び込んだ瞬間、状況は一変し自分のコードが他人の目に触れる現実と、読みづらいコードに悶絶する日々。この経験は誰しもがあるのではないかと思います。では、可読性の高いコードを書くにはどうすれば良いのか?
を考え始めた時に出会ったのが **リーダブルコード** でした。
リーダブルコードは、コードを読みやすくするための原則を提唱しています。https://www.oreilly.co.jp/books/9784873115658/
この原則を守り、プロジェクト全体で共有することで、コードの可読性を向上させることができます。
が、現実はそう甘くありません。規約が完璧に反映されているコードレビューが実施されないプロジェクトも多いでしょう。
**政治的な問題** や **納期の関係** もあり、一度実装されたコードの変更が難しいこともあります。そこで、今回は「リーダブルコード」の原則を準拠したコード
LeetCode練習記録
# LeetCode練習
## はじめに
[この本](https://www.bing.com/ck/a?!&&p=906979616455a15eJmltdHM9MTcxNDg2NzIwMCZpZ3VpZD0yMDg1NDI2ZS1lZWJlLTZjZmYtMzc0Yi01MzVhZWY1NDZkN2QmaW5zaWQ9NTIwNA&ptn=3&ver=2&hsh=3&fclid=2085426e-eebe-6cff-374b-535aef546d7d&psq=%e4%b8%96%e7%95%8c%e4%b8%80%e6%b5%81%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%81%ae%e6%80%9d%e8%80%83%e6%b3%95&u=a1aHR0cHM6Ly93d3cuYW1hem9uLmNvLmpwLyVFNCVCOCU5NiVFNyU5NSU4QyVFNCVCOCU4MCVFNiVCNSU4MSVFMyU4MiVBOCVFMyU4MyVCMyVFMyU4MiVCOCVFMyU4MyU4QiVFMyU4MiVBMiVF
876. Middle of the Linked List
# 876. Middle of the Linked List
リストノードの理解に時間がかかった。
連結リストは応用情報で学んでいたが、このような形で出るのか
返り値を同じリストノードで返すために工夫がいる点に注意“`Python
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def middleNode(self, head: Optional[ListNode]) -> Optional[ListNode]:
next_jud = head
length = 1
answer = head
while next_jud is not None:
next_jud = next_jud.next
1342. Number of Steps to Reduce a Number to Zero
# 1342. Number of Steps to Reduce a Number to Zero
特に考慮したことはなし
“`Python
class Solution:
def numberOfSteps(self, num: int) -> int:
divided_num = num
counter = 0while divided_num != 0:
if(divided_num % 2 == 0):
divided_num = divided_num / 2
else:
divided_num -= 1
counter += 1
return counter
“`
412. Fizz Buzz
# 412. Fizz Buzz
よくあるFizzBuzz問題。
list.append()の書き方を忘れていた。“`python
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
answer_list = []
for i in range(1, n + 1):
if(i % 3 == 0 and i % 5 == 0):
answer_list.append(“FizzBuzz”)
elif(i % 3 == 0):
answer_list.append(“Fizz”)
elif(i % 5 == 0):
answer_list.append(“Buzz”)
else:
answer_list.append(str(i))
retu
LangChainを用いて大量ファイルをロードするVectorDBを作ってみた(3)
# はじめに
[前回](https://qiita.com/ogi_kimura/items/ecedd7c85ca1b0b0fc58 “LangChainを用いて大量ファイルをロードするVectorDBを作ってみた(2)”)作成した「大量ファイルをロードするVectorDB」を基に、今回は『LangChat完全入門』(田村悠 著)のプログラムを参考にして、生成AI(OpenAI)から回答をもらう仕組みを作ってみました。その実際の流れを文章にしてみました。
Webブラウザ表示については、「chainlit」という直感的にコーディングできるライブラリを用いてみることにしました。# ソースコードの利用
『LangChat完全入門』(田村悠 著)の「03_retrieval」の「chat_2.py」を修正して、Webブラウザ上で生成AIに質問ができるようにしてみました。以下は、元々の「chat_2.py」です。“`python:chat_2.py
import chainlit as cl
from langchain.chat_models import ChatOpenAI
f
1672. Richest Customer Wealth
# 1672. Richest Customer Wealth
前の値と比較して、値を入れ替えていく方法を行った。
そこそこ成績は良かったため嬉しい。“`Python
class Solution:
def maximumWealth(self, accounts: List[List[int]]) -> int:
compare_wealth = 0
for i in range(0, len(accounts)):
compare_wealth2 = sum(accounts[i])
if(compare_wealth <= compare_wealth2): compare_wealth = compare_wealth2 return compare_wealth ```
LeetCode 1480. Running Sum of 1d Array
# 1480. Running Sum of 1d Array
リストが与えられていて、返り値もリストで返す。
返すリストのi番目の要素は、与えられているリストのi番目以前の要素の和“`python
class Solution:
def runningSum(self, nums: List[int]) -> List[int]:
num_list = []
for i in range(1,len(nums)+1):
num_list.append(sum(nums[0:i]))
return num_list
“`他の方の回答を見て、sum使わなくてもできることに気付いた。
“`python
num_list[i] = num_list[i-1]
“`
という感じにできるよなぁと
【3ヶ月でFlask基礎固め】 2 . SNSアプリを作ってみた
## TWITTY の機能紹介
ポートフォリオ第一弾「TWITTY」が完成したのでブログに起こします。
このアプリではCRUDの基本的な操作は全て網羅しており、
さらにAjaxやFlask-migrationなどの拡張機能の実装にも挑戦しました。GitHub : TWITTY
https://github.com/lovehakumai/TWITTY◼️LP画面 :
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684559/906f2bcd-f123-6029-294f-f6d35ff408b2.png)◼️アクセス画面 :
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684559/585aa87b-5df1-9612-d0ff-f6cc66559c0a.png)PurecssのテンプレートにもあるLPレイアウトを参考にLPを作成しました。
SIGN UP –
Python クラス作成(備忘録)
# Pythonクラス
## はじめに
個人レベルの備忘録
クラス作成、継承、オーバライドを簡単に行った。“`python
class text_output1:
def __init__(self, x, y):
self.x = x
self.y = y
def announce(self):
print(“xの値は”, self.x)
print(“yの値は”, self.y)
print(“この関数はtext_output1によるものです。”)t = text_output1(4,50)
“`メソッドオブジェクトを出力するとこんな感じになるので注意
する機会はないと思うが“`python
print(t.announce)
“`
“`:出力
>
“`メソッドオブジェクトを呼び出す
FlaskアプリでCeleryを使ってバックグラウンドタスクを実行する方法
### FlaskアプリでCeleryを使ってバックグラウンドタスクを実行する方法
#### 環境設定
必要なツールとライブラリをインストールします。1. **Redisのインストール**
macOSを使用している場合、Homebrewを通じてRedisを簡単にインストールできます。
“`bash
brew install redis
“`
インストール後、Redisサーバーを起動します。
“`bash
redis-server
“`2. **FlaskとCeleryのライブラリのインストール**
“`bash
pip install Flask Celery redis
“`#### Flaskアプリの設定
Flaskアプリを設定し、Celeryのインスタンスを初期化します。
“`python
from flask import Flask
from celery import Celeryapp = Flask(__name__)
app.config[“broker_url”] =
Chromaで埋め込みを体感してみる
## 最初に
埋め込み(Embedding)はいい実装がモジュール化されているということを認識しているのですが、基本的なことを理解するためにChromaのAPIを触ってみました。
この記事はその過程をメモしたものです。## Chromaとは
Chromaはオープンソースのベクトルデータベースです。
内部的にはRedisを使っているそうです。https://www.trychroma.com/
## Python環境の構築
以下はAnaconda環境での構築を想定しています。
ただし、“`conda“`だと新しいライブラリが使えないことがあるので、“`pip“`でパッケージを導入しています。“`sh
conda create -n embtest python=3.8
conda activate embtest
pip install chromadb streamlit
“`## Pythonプログラムの実装
ハードコーディングしたドキュメントをベクトルデータベースに格納して、その後に検索するプログラムを作成します。
`
レビュー分析AI (ReviewAI) に新機能:観点の詳細を確認する機能を実装しました。
# はじめに
みなさま、GWは楽しんでますか?
旅行や観光、ついでに温泉に入った人も多いのではないでしょうか?
このGWで弊社リテジーリンクでは、レビュー分析AIサービス・ReviewAI (レビューアイ) に
観点の詳細を確認する機能を実装しましたので、ご紹介します。今回はGWということで、草津温泉のつつじ亭についての
食べログのレビューを分析させていただきます。## つつじ亭
つつじ亭は、草津温泉の料亭旅館です。
[食べログ](https://tabelog.com/gunma/A1004/A100402/10007823/)## ReviewAI (レビューアイ)
弊社 RetegyLink が開発中のレビュー分析 AI です。
https://reviewai.next-seed.work/
試作版を公開中で、現在は
– [食べログ](https://tabelog.com/)
– [じゃらん](https://www.jalan.net/)
のレビューを分析できます。# レビュー分析
こちらが分析結果です。
全てのレビューを分析し、観点ごとに強みと改善点
【Python】雇用保険の基本手当の計算
## 基本手当を計算するコードを書いてみた
### 雇用保険の基本手当日額の計算方法が変更される(令和5年8月1日より)
– 労災保険の基本手当、育児休業給付金、介護休業給付金の計算に使う
– 満15歳に達した日以後の最初の3月31日が終了するまでの児童以上で、且つ65歳未満であること
– 賃金日額 = 直近6ヶ月の給与総額(賞与除く) ÷ 180日
– 賃金日額の下限額: 2,746円
– 年齢や賃金日額のレンジ(範囲)よって計算方法が異なる
– 基本手当の下限額: 2,196円
– 端数処理については、1円未満を切り捨てる
– 厚生労働省の資料に基づく([資料](https://www.mhlw.go.jp/content/001125522.pdf))::: note alert
算定式は定期的に変更されるので、下記のコードを使うときは最新の算定式に修正が必要
:::::: note info
__環境__
– MacOS : Sonoma 14.4.1
– python : 3.12.0
:::::: note info
__ポイント__
– スクリプトを走らせる
重回帰分析で重判別分析
私の保有している資格の一つ「ビジネス統計スペシャリスト」という資格で重回帰分析というのを様々な形に応用する単元があるのですが、その中で面白いと思ったのが重回帰分析で判別をするというものがあります。
仕組みはロジスティック回帰と似ていて(というかその資格でもロジスティック回帰を推奨していた)、回帰の結果が0.5を超えた場合に1、未満の場合は0としていました。
また、多値分類については記載はありませんでしたが、SVMなども「model.coef_」とやると多値分類の場合クラスの数だけ数式の係数が出力される通りクラスの数だけモデルを作ります。そこで最も大きい値を取ったモデルの結果が陽性という風になります。
# コーディング
## 二値分類
### ライブラリのインポート
“`Python3
from sklearn.linear_model import LinearRegression as LR
from sklearn.metrics import classification_report
import pandas as pd
import numpy as np
“`##