Python

Python

Gradioで1つのTextboxから複数のChatbotに同じメッセージを送る

Gradioでチャットボットを実装して色々なLLMやプロンプトで遊んでいた時、同じテキストを入力した場合にLLMの種類やプロンプト設計で結果がどのように変わるのかを比較したくなった。 1つのTextboxから複数のChatbotに同じメッセ...
Python

StreamlitにGoogle Analyticsのタグを埋め込む

Streamlitで作ったwebアプリにGoogle Analyticsのタグ(gtag.js)を埋め込みたかったが手こずった。 st.components.v1.htmlやst.markdownでhtmlを書き込むことが可能だが、<bod...
Python

テキストの前処理でGiNZAを使って個人情報のマスキングをする

LLMの学習データを用意していた際、人名などの個人情報をマスキングしたくなった。 調べてみると、日本語の自然言語処理ライブラリであるGiNZAで固有表現を抽出できるみたい。 v5からTransformersモデルを採用しており、解析精度が向...
Python

メモリに乗り切らない大量のデータの平均値と標準偏差をWelfordアルゴリズムで逐次計算する

Kaggleに取り組んでいた時、大量のデータセットが与えられた。 一般的に、ニューラルネットに入力するデータは標準化している方がいいと言われているが、データが大量にあってメモリに乗り切らず、sklearn.preprocessing.Sta...
Python

PyQt5とOpenCVを同時に使おうとしてエラー If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config

PyQt5のアプリケーションを弄っていた時に、cv2.imshow()をしようとしたら表題のエラー。 If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config,...
Python

joblibやscikit-learnでOSError: [Errno 28] No space left on device

dockerコンテナ内でscikit-learnやjoblibを使っていた際に表題のエラー。 OSError: No space left on device ハードディスクには十分な空き容量があったため、何のスペースが足りないのか分からな...
Python

plt.gca()を使ってpandasのplotを複数並べて楽にsubplotする

pandasでdf.plot()をすると、matplotlibを使わなくても簡単にグラフを作ることが出来る。 しかし、複数のグラフを作りたくてsubplotsしようとすると途端に面倒になり、df.plot()の引数やmatplotlibのf...
Python

pythonのdataclassでkey, value, lenを使う

データの格納だけをしたい時、辞書を作成するよりもdataclassでデコレートする方が宣言が楽で便利。 __init__()を書いてインスタンス変数に代入、という作業をしなくて済むので見た目もスッキリする。 import dataclass...
Python

LightGBMでInput numpy.ndarray must be 2 dimensional lightgbm

LightGBMでnp.arrayを入力して回帰モデルを作ろうとした時に表題のエラー。 X_train, X_test, y_train, y_test = train_test_split(X, y) model = lgb.LGBMRe...
Python

Raspberry piのI2CでOSError: [Errno 121] Remote I/O error

Raspberry piにI2Cのセンサーを繋ぎ、smbus2でデータの取得を試みたところ表題のエラー。 File "/usr/local/lib/python3.7/dist-packages/smbus2/smbus2.py", lin...