- 1. 30 Days of Streamlitにチャレンジしてみた (Day 11~)
- 2. プログラミング学習に不安を感じている初学者さんへ
- 3. pytestでprint()の出力結果をコンソールに出力する
- 4. Embeddingで作成したベクトルデータから、類似度を高いものを検索する
- 5. ライブラリのインストール
- 6. PNG に編集ソースファイルを埋め込んで再編集可能にする その3
- 7. おまえは今まで食ったパンの枚数をおぼえているのか? の返答を HuggingFace Transformers で生成するッ!
- 8. 米国の輸出入額の推移
- 9. 【必見】python勉強法!
- 10. ChatGPT規格のプラグイン開発に入門する
- 11. LangChainとGradioを使ったLLMアプリ開発
- 12. 離散Fourier変換:位相、時間シフト
- 13. 医師がAtCoderで黄色になった話【色変記事】
- 14. 初心者が生成系AI(主にChatGPT)についてのネガポジ判定してみました
- 15. dbt-coreにおけるOSS活動ことはじめその7 ~ デバッグの話 ~
- 16. ナイーブベイズの実装確認
- 17. Db2 on Cloud REST API できること一覧(Method一覧) by BeautifulSoup4
- 18. 一般次元での直交行列の回転軸・回転平面への分解
- 19. Pythonのpandasで、DataFrameの行を抽出するとき、自作の関数を使用する
- 20. LlamaIndexを使った要約の内容把握
30 Days of Streamlitにチャレンジしてみた (Day 11~)
## Streamlitとは
StreamlitはPython向けのWebアプリケーションフレームワークです。
https://streamlit.io/
Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。
– 変数を地の文に書くだけで、GUIに出力される(**マジックコマンド**)
– `st.radio`や`st.text_input`のようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される[30 Days of Streamlit](https://blog.streamlit.io/30-days-of-streamlit/)はStreamlitのチュートリアルコンテンツ。SNSに進捗を共有しながらちょっとづつStreamlitを学習できます。
`#30DaysOfStreamlit`で検索すると先人たちのチャレンジの記録がたくさん!
やっていきましょう。## Day 10まで
Day 10までの日記は[こちら](https://
プログラミング学習に不安を感じている初学者さんへ
今回はたくさんの人に支えられながらプログラミングを半年やってきた僕が、初学者さんへ向けて、モチベーションなどを少しでも上げてもらえればいいなと思い記事を書かせていただくことにしました!
この記事はプログラミング学習等に不安を感じている方向けですので、不安なんて感じてないよって方は回れ右で大丈夫です。
果たしてどれだけの初学者さんがQiitaを読んでいるかは分かりませんが、少しでも多くの方に役に立っていただければと思います。
いくつか章があるので気になったところだけ読んでください。
## ここで簡単な自己紹介
* プログラミングをやりだして半年ほど経ちました。
* HTML, CSS, Ruby, Pythonをやっています。どれも好きです。
* 開発が大好きで、自分が欲しくなった機能などを作ったりしています。
* たくさんの方に支えられてここまで来ました。ありがとうございます。では、そろそろ始めます。
めっっっちゃ緩いお話なのでリラックスしていきましょう!GOGO## プログラミングはマジ余裕
もしこの円卓会議に参加している者の中に魔王
pytestでprint()の出力結果をコンソールに出力する
コマンドでpytestを実行する場合は、“`-s“`オプションを指定する。
“`
pytest -s
“`VSCodeを使用している場合、.vscode/settings.jsonに“`–capture=no“`を指定する。
“`json:settings.json
{
“python.testing.pytestArgs”: [
“.”,
“–capture=no”
],
“python.testing.unittestEnabled”: false,
“python.testing.pytestEnabled”: true
}
“`
Embeddingで作成したベクトルデータから、類似度を高いものを検索する
# はじめに
OpenAIの[Embedding](https://platform.openai.com/docs/api-reference/embeddings)を使うことで、文章を定量化(ベクトル化)できます。
今回は、その機能を使って、1. データベースの文章をベクトル化しデータ構築
1. 入力された文章をベクトル化
1. データベースから最も近いベクトルを抽出ということをします。
これを応用して、コールセンターの自動化などができるようです。今回は、Google Colabratory上でやってみます。
# Google Colabのノートブックを作成する
まず、Google Colabのノートブックを新規作成しましょう。https://colab.research.google.com/drive/1ShJGecoBiJXG66fBldLLr4GJ8cSOVCu7#scrollTo=OIPOs0CD_4G1
# OpenAIのインストール
Google Colabには、様々なライブラリが初めからインストールされていますが、OpenAIはインストールされて
ライブラリのインストール
環境
MacOSX13.4.1 (Venture)
Python3(3.8.8)
pip 21.0.1ライブラリのインストール
“`
pip3 install numpy matplotlib pandas
“`
このような感じで羅列して記述。
ターミナルで実行して問題なしでした。
PNG に編集ソースファイルを埋め込んで再編集可能にする その3
「PNG に編集ソースファイルを埋め込んで再編集可能にする その1」
https://qiita.com/nanbuwks/items/1af5b5ec87ebbe2a7712では LibreOffice を使って、 Qiita に貼った png ファイルに編集ソースを埋め込む仕組みを解説しました。
> ここから、先の規定に基づいて png を作る拡張を作りました。(開発中です。)
と書きましたが、今回はその前段階としてのマクロを解説します。
# 環境
– Ubuntu 20.04 LTS
– コンバート対象 LibreOffice Draw ファイル# ~/.config/libreoffice/4/user/Scripts/python
このディレクトリに以下を配置します。
– drawFromEmbPng.py LibreOffice用マクロ
– makeandclipboard.sh LibreOfficeから呼び出すヘルパースクリプト
– fileconv.py LibreOffice ファイルを json テキストに埋め込む Python プログ
おまえは今まで食ったパンの枚数をおぼえているのか? の返答を HuggingFace Transformers で生成するッ!
「おまえは今まで食ったパンの枚数をおぼえているのか?」
ディオの問いに、ツェペリ男爵は答えられませんでしたね。何と答えればよかったでしょう? その返答を、Hugging Face の Transformers で生成してみましょうというのが、今回の記事です。
# 必要なモジュールをインストール
“`python
!pip install transformers
“`Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: transformers in /home/kotera/.local/lib/python3.10/site-packages (4.31.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.10/site-packages (from transformers) (3.12.2)
米国の輸出入額の推移
# はじめに
米国の輸出入額の推移をグラフ化する。
データは、BEA(U.S. Bureau of Economic Analysis、米国商務省経済分析局)の四半期データ(季節調整値)をFRED経由で取得。# コード
“`Python
# ライブラリのインポート
import pandas as pd
import pandas_datareader as pdr
import matplotlib.pyplot as plt
import datetime# FREDからデータの取得
start_date = ‘1947-01-01’ # 開始日
end_date = datetime.datetime.now().strftime(‘%Y-%m-%d’) # 今日の日付を終了日として設定
data = pdr.get_data_fred([‘EXPGS’, ‘IMPGS’], start_date, end_date) # 輸出’EXPGS’、輸入’IMPGS’のデータを取得# データのプロット
plt.figure(figsize=(12,6))
plt.p
【必見】python勉強法!
# はじめに
今回、久々の投稿になります。
内製でやっていることも多くテクニカルな記事でも書こうと思いましたが体調不良や繁忙期が重なり
ズルズルと・・・(時間の使い方悪い)
なので今回はちょっとポエマーチックではありますが、私がこよなく愛しているPythonについてどうやって習得したのかを紹介したいと思います・・!ある意味有料級かもしれないですよ(笑)
今回はへび(python)をtargetに記載していますが、どの言語でも通じるものもあるのでぜひ参考にしてみてください。## へび使いになるためにはへびを知る前に常識を知る
初心者の方は必ずと言っていいほど、じゃ言語を学ぼうと思ったら、速攻で本屋さんに行って、「×× 超入門!!」的な本を絶対立ち読みして、「これめちゃくちゃ分かりやすいな!じゃ買おう!」ってなりますよね。(というか私がそうです)。
そしておうちに帰って、パソコン開いて何をするかとしたら
* まずは読む
* 書いてあるソースコードを模写してコンパイル⇒よし動いた!
と絶対するはずです。
これ、一見いいと思いますが、絶対ぶち当たる壁があると思います。じゃ、学んだことを
ChatGPT規格のプラグイン開発に入門する
# プラグインと今回の構成について
まずは、以下の図を頭に入れておきます。Microsoftが掲げる**Copilot stack × Plugins**の概要図です
以下記事がとても参考になります。https://qiita.com/nohanaga/items/c850947e0196bf2987ae
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/393221/5e240eb0-f44a-8599-9194-c388805c31a4.png)
続いて、プラグインについてもう少し深掘りします。
以下のOpenAI公式ドキュメントにプラグインの詳細な仕様が記載されています。https://platform.openai.com/docs/plugins/getting-started
上記ドキュメントの構成を図にすると以下のようになるかと思います。
(私の中のイメージであり、実際の処理の流れや構成とは異なる可能性があります。)![image.png](https:
LangChainとGradioを使ったLLMアプリ開発
# はじめに
流行りのChatGPTなどのLLMを使ったデモアプリを簡単に作れる方法としてGradioを用いて検証したので、備忘録的にまとめます。# 開発環境
– python3.9
– langchain
– gradio
– Google Colab# 想定読者
– LLMを使った簡単なアプリを作りたい人(langchainの詳細な技術については省略します)
– Gradioを使った機械学習アプリを作成したい人
– Google Colabなどを使って、LLMの機能検証を行い、アプリ化しようとしている人# やりたいこと
– いい感じのインターフェースでデモアプリを作りたい
– デモのインターフェースとしてnotebook環境は万人受けしない# 実行コード
https://github.com/t-hashiguchi1995/ChatGPT_APP_Gradio/tree/main## 必要な手続き
– Google検索のAPIキー作成
1. https://qiita.com/zak_y/items/42ca0f1ea14f7046108c
– OpenA
離散Fourier変換:位相、時間シフト
## 離散Fourier変換
## 準備離散フーリエ変換によって、時間領域から周波数領域へのFourier変換、周波数領域から時間領域への逆Fourier変換は、次のように書くことができます。
※今回は計算方法を鮮明にするため、fftは使いません。
“`python
def dft(f):
F = []
n = len(f)
for x in range(n):
val = 0 + 0j
for t in range(n):
val += f[t] * np.exp(-1j * 2 * np.pi * t * x / n)
F.append(val)
return F
“`“`python
def inv_dft(F):
f = []
N = len(F)
for t in range(N):
val = 0 + 0j
for x in range(N):
val += F[x]
医師がAtCoderで黄色になった話【色変記事】
rinmaoと申します。
ABC308でついに黄色コーダーとなったので色変記事です。![img01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1211836/63ef4845-a283-5f52-daa6-7e1cf6235dc1.png)
色変記事は他にも山ほど転がってると思いますが、比較的レート帯に関わらず共通する内容を書いたつもりですので、この記事を少しでも参考にしてくださる人がいれば幸いです。
前回の色変記事もあるのでそちらも是非お願いします。
https://qiita.com/rinmao_catlover/items/bbbf6767a6a028562c80
# 自己紹介
・プログラミング歴6年くらい?趣味でやってる
・メイン言語はPython
・医師# 精進の取り組み方
自分なりの精進方法をまとめます。## 精進対象
![img02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0
初心者が生成系AI(主にChatGPT)についてのネガポジ判定してみました
# 目次
1. 動機
2. 目標
3. 実装
4. 結論
5. ワードクラウド## 1.動機
自己紹介として講座始める前からpythonの初心者レベルくらいは独学でしていましたが講座を始めてから本格的に学習し、この記事書いてる時点で講座2か月経過しています。
そもそも自分がAIに興味を持ったのが今年の頭にChatGPTが話題になり始め時にちょっと触ってみたところ「チャット形式で質問して自然な言葉ですぐに回答がくるってすごいな!!」と単純に思ったからです。当時から転職を考えておりIT系に興味を持ち始めていたが漠然としていました。このChatGPTを知ってからはAIの方向に進みたいと思うようになりそのきっかけになったChatGPTはヤフーコメントではどんな評価もしくは感情なのか知りたくて調べてみました。## 2.目標
– 最終的な目標としては時期別にヤフーコメントをスクレイピングをしてまとめて各月のネガポジ判定をしてどう変わったかを調べます。それと同時に比較対象として比較的ポジティブであろうと思われる野球の大谷選手の記事と比較的ネガティブであろうマイナーカードの記事も同様に調べて比
dbt-coreにおけるOSS活動ことはじめその7 ~ デバッグの話 ~
# 本記事が目指すこと
– dbt-coreにおけるOSS活動を始めるにあたってやるべきこと、学びになったことを紹介する
– 複数回に渡り連載する予定
– これまでの投稿記事
– [dbt-coreにおけるOSS活動ことはじめ ~投稿記事まとめ~](https://qiita.com/dai_zamurai/items/e48cc3a4f52adc86ccfc)# 注意
– 本記事は筆者が所属する会社と関係なく、個人の記事であることをご了承ください# 背景
– 筆者は、ちゅらデータ株式会社に務める会社員であるが、就業時間中に職務としてのdbt-coreのOSS活動を始めた(OSS活動自体が初めての経験)
– CONTRIBUTING.mdには明示的に記載されてない部分があったため、それらの解説を含む# 本編
これまでの記事では、dbt-coreにおけるOSS活動において、PRを出すまでに必要な手順を紹介した。
本記事では、開発時につまづいた際のデバッグの方法について、ドキュメントをベースにいくつか補足を加えて解説する。
CO
ナイーブベイズの実装確認
# 今回調べたこと
ナイーブベイズを実装しようとした際に、最終的な予測の出力で迷った部分があったので、sklearnの実装を参考。
その際に実装の中身を追ったので、内容を記録。**ソースコード**
https://github.com/scikit-learn/scikit-learn/tree/7f9bad99d6e0a3e8ddf92a7e5561245224dab102
**参考コード**
今回は`BernoulliNB`の実装を参考に中身を確認。
“`python:公式のサンプルコード
import numpy as np
from sklearn.naive_bayes import BernoulliNBrng = np.random.RandomState(1)
X = rng.randint(5, size=(6, 100))
Y = np.array([1, 2, 3, 4, 4, 5])clf = BernoulliNB(force_alpha=True)
clf.fit(X, Y)
print(clf.predict(X[2:3]))
“`
*
Db2 on Cloud REST API できること一覧(Method一覧) by BeautifulSoup4
# はじめに
Db2 on Cloud REST APIの説明資料を作る際、Db2 on Cloud REST API DocumentのMethod一覧を入れたくなり、pythonの[BeautifulSoup4](https://www.crummy.com/software/BeautifulSoup/)を使って作りました。
せっかくなので公開しておきます。
ちなみに、[Db2 on Cloud REST API Document](https://cloud.ibm.com/apidocs/db2-on-cloud/db2-on-cloud-v4)の左側のメニュー、「Methods」の下にある一覧のことです。
セクションになっていて全部開くことはできないので、[Db2 on Cloud REST API Document](https://cloud.ibm.com/apidocs/db2-on-cloud/db2-on-cloud-v4)で一覧では見れません。一覧で見たいですよね、たぶん。。。。
![image.png](https://qiita-image-stor
一般次元での直交行列の回転軸・回転平面への分解
## 問題設定
$d$ 次元空間上でベクトルの長さを変えないよう変換する行列を**直交行列**と呼ぶ.
$3$ 次元空間で回転行列と呼ばれる「向きを保存する」直交行列を扱う場合, クオータニオン (四元数) を用いて記述する方法があり, 直交行列を回転軸と回転平面に分解する操作に密接に関わっている.それで, その直交行列の回転軸と回転平面への分解を一般次元で論じられないかという問題.
### 「回転行列」という用語について
一般の $d$ 次元空間において「回転行列」と言った場合,
(a) 行列式が $1$ である $d$ 次直交行列 (特殊直交行列),
(b) $2$ 次元平面上のベクトルを回転させ, その平面に直交する $d-2$ 次元成分を保存する直交行列の一種,
の二つの意味があり, $d \leq 3$ では両者は一致する.(a) は (b) を含むためこの記事では (a) の意味で回転行列の一般次元化 (さらに行列式が $-1$ の場合への拡張) とその分解を考えるが, (b) の意味では次の記事やそこで紹介されている論文で一般次元化
Pythonのpandasで、DataFrameの行を抽出するとき、自作の関数を使用する
# 結論
`DataFrame`の`apply`関数とラムダを組み合わせます。# 前提
サンプルコードでは、下記の記事で公開している[csv](https://raw.githubusercontent.com/nkmk/python-snippets/df339a7fdbc65d1a7a310103a0f4a795dc3321a5/notebook/data/src/sample_pandas_normal.csv)を使用させていただきました。[csv](https://raw.githubusercontent.com/nkmk/python-snippets/df339a7fdbc65d1a7a310103a0f4a795dc3321a5/notebook/data/src/sample_pandas_normal.csv)からデータを取り込み、`DataFrame`を作成しております。https://note.nkmk.me/python-pandas-query/
# サンプルコード
“`.py
import pandas as pd# 抽出条件として使用する
LlamaIndexを使った要約の内容把握
# はじめに
2023年はChatGPTや生成AI、LLMアプリ開発ライブラリの展開がとても速いですね。
キャッチアップするのもなかなか大変ですが、業務で関係しそうなところを中心に触って理解を深めていきたいと考えています。
今回は業務でも使う場面が多そうな「要約」について試しています。
プロンプトにはトークン数の制限があるため、長いテキストの要約を行うにはいろいろと工夫が必要になります。
今回はChatGPT+LlamaIndexを使って長文の要約を試しました。
LlamaIndexの公式ドキュメントを見るとわかるのですが、あまり内部の仕組みについては記載されていません。
自分も全容を把握するのに苦労したので、実施結果だけでなく解説も載せることにしました。
記事を読まれた方の参考になれば幸いです。# 1. 要約に使用したテキスト
青空文庫から吉川英治の三国志をチョイスしています。
01~12まで副題が分かれていますが、その中から「02 桃園の巻」をダウンロードしました。
参照) [図書カード:三国志](https://www.aozora.g