サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
okumuralab.org/~okumura
LLM(大規模言語モデル)は文字ではなくトークン(token)というものを単位として処理します。トークンは単語に近いものですが、必ずしも単語とは一致しません。 文字列をトークンに分割するツールをトークナイザ(tokenizer)といいます。OpenAIのLLMでは tiktoken というトークナイザが使われます。tiktoken はいくつかのエンコーディング(トークン分割方式)に対応しており、古くは cl100k_base というエンコーディングが使われていましたが、GPT 4oからは o200k_base に変わりました。 pip install tiktoken して試してみましょう: import tiktoken enc = tiktoken.get_encoding("o200k_base") # または enc = tiktoken.encoding_for_model("g
NotebookLMなどのAIに助けてもらいながら読むことのできるDRMフリー(テキスト抽出可能)なPDFまたはEPUBで本を売っているところのリストです(順不同)。ほかにもあったら教えてください。 技術評論社 オライリー・ジャパン ラムダノート 翔泳社 CQ出版社 達人出版会(オーム社、アスキードワンゴ、近代科学社、近代科学社Digitalの委託販売も) インプレス サイエンス社 明治図書 ボーンデジタル マイナビ Manatee(インプレス、C&R研究所、BNN、ボーンデジタル、マイナビ出版、リックテレコム、共立出版) TAC出版 ラトルズ BOOK TECH 技術書典 エクスナレッジ・ストア ほかにBOOTHやDLsiteにもいろいろありそうです。 おまけ 青空文庫(著作権の切れた本をテキスト/HTMLで提供) プロジェクト杉田玄白(青空文庫の翻訳版) コンプリート・シャーロック・ホ
Marpで Marp を説明します。VS Codeを使う方法ではなくMarp CLIを使う方法ですので、テキストエディタはお好きなものをお使いください。 MarpのMarkdownエンジン部分が Marpit です(インストールの必要はありません)。 Marp、Marpitの開発者は日本人の服部雄輝さんです。 --- marp: true paginate: true --- # Marp入門 奥村晴彦 --- ## Marpとは Markdownでプレゼンテーションスライドを作るための仕組みです。 `---` が改ページです。最初のYAML部分は設定です。 - 箇条書きは `-` または数字で始めます。 - スペース2個でネストできます。 1〜3個の `*` で囲んで *Italic*、**Bold**、***Bold Italic*** にできます。 > 引用は `>` で始めます。
[2025-02-24] 以下で述べたようなことを取り込んだテンプレート typst-js がTypst Universeに入りました。 [2025-02-10] Typst 0.13.0の変更点を別記事にまとめました。1行目がインデントされないバグが直り、和欧混植に便利な機能も追加されたので、日本人には嬉しい更新です。 [2024-11-21] 日本語の組版ルールもご参照ください。 はじめに Typst(タイプスト)はLaTeX代替とされる新しい組版ツールである。無料〜有料のサービスだが、GitHub でオープンソースのコマンド版(CLI)が公開されている。ここではオープンソース版について扱う。なお、TeX Liveを入れていれば、texdoc typstfun でTypstとLaTeXのコマンド対照表が表示される。 インストールはGitHubからダウンロードするか、あるいはMacならH
JavaScriptで音を鳴らすことができます。ご自分の耳が何Hzまで聞こえるか試してみてください(23000Hzまで聞こえたというかたがおられたので24000Hzまでに増やしてみました)。 1000 Hz Stop 4000 Hz 8000 Hz 10000 Hz 11000 Hz 12000 Hz 13000 Hz 14000 Hz 15000 Hz 16000 Hz 17000 Hz 18000 Hz 19000 Hz 20000 Hz 21000 Hz 22000 Hz 23000 Hz 24000 Hz 仕組みはソースを見てください。ほぼChatGPT 4oに書いてもらいました。最初はボタンの数が少なかったこともあってChatGPTはボタン一つ一つに id を付けていたのですが、ボタンの数が増えると厄介なので、this を使ってくださいと指示したら、こうなりました。
ゼロで割ることはできません。無理に割ろうとすると 1 / 0 ZeroDivisionError というエラーになります。 しかし、コンピュータによる数値計算では、a / b のような割り算のときに、たまにしか起こらないエラーのためにいちいち b がゼロかどうか確認するのは面倒ですし、速度的にも不利です。 そこで、浮動小数点演算の IEEE 754 という規格では、1.0 / 0.0 に相当する「無限大」という数や、0.0 / 0.0 に相当する「非数」という数を導入して、割り算がエラーにならない仕組みを用意しています。 この仕組みをどう使うかは、言語によって異なります。 R では、1 / 0 と打ち込むと Inf(Infinity = 無限大)と返ってきます。0 / 0 は NaN(Not a Number = 非数)になります。いずれにしても、エラーで止まることはありません。 Ruby
拙著『Rで楽しむ統計』の53〜55ページに書いた「富の分布」のシミュレーションをPythonでしてみましょう。 神様が100人に500枚の金貨を投げ与えました。全員がちょうど5枚ずつ金貨を手にすれば貧富の差がないのですが、現実には、たまたま多くの金貨を手にする人もいれば、そうでない人もいます。どのような分布になるでしょうか? 1人の人に着目します。神様が金貨を1枚投げたとき、この人が金貨を手にする確率は0.01です。これが500回繰り返されたとすると、この人が $k$ 個の金貨を手にする確率は \[ p_k = {}_{500}C_k 0.01^k (1-0.01)^{500-k} \] という2項分布になります。 これくらいなら簡単ですが、人数 $m$ が100よりずっと多かったらどうでしょうか。神様は1人あたり平均5個の金貨を与えたいので、$5m$ 個の金貨を用意しなければなりません。
ChatGPTが「視覴」という新語を発明したらしいことをフガクラさんのツイート(2023-06-08 08:51:02 JST)で知る。 すでに「視覴」は、いくつかの最近書かれたWebページで使われていた。ChatGPTで生成されたページらしい。ざっと検索して見つけたページを列挙しておく。いずれも最近作られたか修正されたページである(1件だけ2020年のページがあるが、最近修正されたものかどうか不明)。 映像・音声編集におけるノーマライズの重要性!(2023-05-11)「視覴的・聴覚的な一貫性」「視覴的な効果を最大化」「視覴的な混乱を避け」(2回)なお、このページは現在消えて視覴とは?AI(ChatGPT)が出力した新しい言葉なのか?(2023-06-08)にリダイレクトされ、「弊社では、2023年3月より用語集作成に際しAIライティングの試験運用を行っておりますが、この度、「視覚」の誤
はじめに このページではOpenAIのChat Completions APIについて解説します。OpenAIは新しいResponses APIに移行するつもりのようです(OpenAIのresponses APIを使う 参照)。しかし、Chat Completionsは他社のAPIもお手本にする基本的な方法なので、使ってみて損はしません。 まずこちらで登録してAPIキーを発行してもらいます。サブスクのChatGPTと異なり、料金は従量制で、百万トークンあたり何ドルという具合に課金されます。値段の比較はLLM API比較がわかりやすいと思います。 APIの概要はOpenAIの OpenAI developer platform からドキュメンテーション、APIレファレンスなどをご覧ください。APIで送られたデータは学習用に使われることはありません。不正使用の監視のために30日間保持され、特に
マイナンバーカード普及状況ダッシュボードの「性別・年齢別」グラフを見ると,老人ほど男性の交付率が大きい。なぜだろう? 最新データのdemographics.csvをダウンロードして調べてみる(ここでは2021/11/01時点のものを使った)。 import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv("demographics.csv") age = (df.index[1:] - 1) * 5 men = df["交付率(男)"][1:] women = df["交付率(女)"][1:] fig, ax = plt.subplots(ncols=2, figsize=(8, 6)) # 左(男) ax[0].barh(age, men, color="C0", height=5, align="edge",
[ご注意] このページの内容は古いので、新しいOpenAIのAPIを使うをご覧ください。 はじめに OpenAI の ChatGPT が人気ですが、これとほぼ同様な機能が API として提供されています。これをPythonから使うパッケージ openai があります。これを使ってみましょう(よりハイレベルのパッケージとして LangChain、GPT Index(LlamaIndex に改称)などがあります)。 自分のプログラムからAPIを使うには、こちらで登録してAPIキーを発行してもらわなければなりません。費用が発生します(ただし3ヶ月間有効な18ドルの無料枠があります)。最も強力なDavinciモデルの場合、1000トークンあたり0.02ドル(2〜3円)かかります。1トークンは、英語なら頻出単語1語(日本語なら1文字)にほぼ相当します。頻出でない語は2トークン以上になります。だいたい
以下は2022-08-12の一連のツイートをまとめたものである。データは2022-08-13朝に再取得し、人口密度などのデータは2020年国勢調査に統一したので、ツイートとは若干異なるかもしれない。 札幌医科大学のゲノム医科学部門に人口あたりの新型コロナウイルス感染者数の推移【世界・国別】という便利なページがある。その下に【都道府県別】人口あたりの新型コロナウイルス感染者数の推移、【都道府県別】新型コロナウイルスワクチン接種率の推移などがあり、最新データをダウンロードできる(ちょっとわかりづらい)。 とりあえず「都道府県別人口100万人あたりの感染者数_[令和2年10月国勢調査]_2022-08-12.csv」、「都道府県別ワクチン追加接種率(3回目,全人口に対するパーセント)_[令和2年10月国勢調査]_2022-08-11.csv」をダウンロードした。CSVファイル(文字コードはUTF
気象庁のアメダス(AMeDAS: Automated Meteorological Data Acquisition System 自動気象データ収集システム)のデータはWeb APIで提供されています。 入口はいくつかありますが、例えば地図を拡大して自分の知りたい場所を探してクリックすると、一覧表(1時間ごと・10分ごと)やグラフを見ることができます。 例えば私の住んでいる三重県津市をクリックすると、https://www.jma.go.jp/bosai/amedas/#area_type=offices&area_code=240000&amdno=53133&format=table1h&elems=53414 というページが現れます。この URL に含まれる amdno=53133 により、津市のアメダスの番号が 53133 であることがわかります。 今日の早朝は大雨でしたので、そ
TwitterのステータスIDの仕組み 世界最初のツイートは、ジャック・ドーシー(Jack Dorsey)による 2006-03-22 の https://twitter.com/jack/status/20 である。この「20」というツイートのIDは、当時はMySQLのユニークIDを使っていたようだが、2010-06-01 の Announcing Snowflake という記事で、Snowflake という仕組みに切り替えることがアナウンスされた。 現在の Twitter ID は、Snowflake という仕組みで、日時から生成される。下位22ビットはユニークなランダム値で,上位は 2010-11-04 01:42:54.657 UTC (2010-11-04 10:42:54.657 JST) を起点としたミリ秒単位の時刻を表す。したがって,IDからツイートのタイムスタンプを求める
「鬼滅の刃」のヒロイン「竈門禰󠄀豆子」(かまどねずこ)の「禰󠄀」は,「禰」(U+79B0)+異体字セレクタ(U+E0100 VARIATION SELECTOR-17)でできている(→ UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた)。これをLaTeXで出せるか。 使ったのは普通の TeX Live 2021 で,Mac 上でテストした。ドキュメントクラスは何でもいいが,platex・uplatex・lualatex のどれにも対応する jlreq にしてみた。 \documentclass{jlreq} \begin{document} 竈門禰󠄀豆子 \end{document} まず platex してみよう。 l.4 竈門禰^^f3^^a0^^84^^80 豆子 ? 異体字セレクタでエラーになってしまう。 uplatex では処理できた。
利用文字(変更できます): 長さ(変更できます): パスワード: copy 再生成 ブラウザ内で動作するJavaScriptだけを使っていますので,生成したパスワードは外部に送信されません。 サイトによっては「秘密の質問と答え」を設定させられ,しかも全角文字しか使えないことがあります。そんなときは,利用文字を例えば「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわん」にしてください。
Ruby の while line = gets puts line end は、コマンドライン引数で与えられたファイルを一つずつ開いて1行ずつ読み込み、出力するループである。コマンドライン引数でファイルを指定しなければ、標準入力から1行ずつ読み込む。 これと同じことをするための仕組みが Python の標準ライブラリの fileinput モジュールで提供されている: import fileinput for line in fileinput.input(): print(line, end="") # または print(line.rstrip()) fileinput.input() に引数でファイル名(のリスト)を与えれば、それが優先される。 Ruby の gets と違い、ループの中で余分に行を読み込むことはできない。 標準入力だけ読めばよいなら、次のようにできる: impor
[2023-02-01] このページは何度も追記されています。現状は最後にあります。 内閣府の「国民の祝日」CSVを巡る話題はTwitterのモーメント内閣府の「国民の祝日」のCSVがひどい。によくまとまっている。以下ではデータの推移をまとめておく。 内閣府の「国民の祝日」についてというページから http://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv というCSVファイルがリンクされていた。2017-02-21 にダウンロードしたものをdata/syukujitsu-170221.csvに置いておく(文字コードSJIS,行末CRLF)。念のため,以下にも貼り付けておく: 平成28年(2016年),,平成29年(2017年),,平成30年(2018年), 名称,月日,名称,月日,名称,月日 元日,2016/1/1,元日,2017/1/1
[2022-08-28] COCOA通知が来ました(2022-08-24に「合計51分間の接触」)。その時点のデータまで追記してあります(exposure_data.json も)。 COCOA 2.0.0 になって、MatchCount がログに記録されないようになりました。 COCOA 2.0.1 になって、COCOA アプリの「陽性登録者との接触結果を確認」→「情報を保存」で exposure_data.json という詳細ログが保存できるようになりました。これを見れば接触日などがわかります。私の iPhone のデータ例を置いておきます。中を見るための Python プログラムの一例です(同様なことをするためのサイト COCOAログチェッカー2.0 (β) や COCOAログ.jp ができました): import json import pandas as pd with open
文字化け 文字が糸へんの難しい文字などに化けるのは、UTF-8のバイト列をShift JIS(またはそれをMicrosoftが拡張したCP932(コードページ932))として解釈されてしまったためである。 例えば「あいうえお」というUTF-8文字列は、メモリ中で次のように保存されている: "あいうえお".encode("utf-8") b'\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a' つまり16進で e3 81 82 e3 81 84 e3 81 86 e3 81 88 e3 81 8a である。これをShift JISのバイト列と解釈すると、縺 (e3 81) ゅ (82 e3) > (81 84) 縺 (e3 81) 解釈不能 (86) 縺 (e3 81) 医 (88 e3) ♀ (81 8a) となる。これ
メールでZipファイルを送って次のメールでパスワードを送るという無意味より悪いセキュリティ対策が問題になっている。なぜ無意味より悪いかというと,Zip暗号化は強度が十分でない上に,次のメールで送るパスワードは無意味で,さらにゲートウェイでのウイルス対策ができなくなるのでウイルス送付に利用されやすいためである。 PythonでZipファイルを展開する方法は文字コードのところに書いたが,同様にしてパスワードをブルートフォースで破ることも原理的には可能である。6桁数字のパスワードで暗号化した test.zip をクラックするには次のようにすればよいであろう: from zipfile import ZipFile with ZipFile('test.zip') as z: for i in range(1000000): pw = f'{i:06d}' try: z.setpassword(p
はじめに 2020-11-13 に Apple Store で注文した MacBook Air 16G/256G が 2020-11-29 に届いたのでさっそく設定。 2020-11-20 に生協に注文した Mac mini 16G/256G は 2021-01-12 に届いた。 どちらもメモリ16Gにしたが,通常の用途には8Gで十分かも。SSDは満タンの半分程度で使うつもりで選ぶほうが安心らしいので,据置き用にはHDDをつないでいたが,4TのSSDを2台(Sandisk,Crucial)入手したので,APFSフォーマット(暗号化)してつなぎ,データ用とTime Machine用にした。高速・まったく無音で,快適。 セットアップと一般的な設定 他の Mac からコピーという手もあったが,ここはクリーンセットアップすることにする。Apple ID を設定したら iCloud から多くの設定を
[2020-09-17] Rが4.xになったことと,国土数値情報の令和2年(2020年)版が出たことと,WindowsでRをお使いの方からフィードバックをいただけたことにより,このページと集約geojsonデータを改訂しました。 はじめに シェープファイル(Shapefile)は,地図を表すベクトルデータ形式である。Esri が提唱した。拡張子 shp,shx,dbf の三つのファイルから成る。ほかにも投影法についての情報を持つ prj や,メタデータの xml などを含むことがある。 日本の行政区域を表すシェープファイルは,国土数値情報サイトの「行政区域」や,e-Stat の「地図で見る」→「境界データダウンロード」→「小地域」→「国勢調査」→「小地域」→「世界測地系緯度経度・Shape形式」などで入手できる。 シェープファイルを読むRのパッケージはいろいろあるが,ここでは sf(sim
[2021-12-03] 2021年10月までのデータを追加した。 [2021-11-02] 2021年9月までのデータを追加した。 [2021-10-13] 2021年8月までのデータを追加した。 [2021-09-01] 2021年7月までのデータを追加した。 [2021-08-09] 2021年6月までのデータを追加した。 [2020-06-11] 2020年4月分のデータを追加した。 [2020-06-13] 日経新聞6月11日記事を引用した。 [2020-07-03] 2020年5月分のデータを追加した。 [2020-08-17] 2020年6月分のデータを追加した。 Financial Times の COVID-19 グラフでお馴染みの超過死亡(excess mortality)が日本でも見られるかが話題になっている。2020年5月5日の時点ではインフルエンザ関連死亡迅速把握
東京都の情報は2021-05-24以降は毎日16:45に東京都福祉保健局からPDFで発表されているが,手作業での更新のようで,うまくスクレープできないこともあった。そうこうしているうちに厚労省が16:00ごろ全国の都道府県についてオープンデータを更新することになったので、そちらを取得して COVID-tokyo.csv を作成し,自動ツイートしている(描画部分のコード:COVID-tokyo.py)。そのグラフ: 実効再生産数を,(直近7日間の陽性数/n日前7日間の陽性数)**(5/n)で近似したもの。東洋経済オンラインでは n=7 としているが,ここでは 1 から 7 までの7本のグラフを示した。 全区間にわたってプロットしたもの: 縦軸を対数目盛にしたもの: 奥村 晴彦 Last modified: 2022-12-31 16:26:39 JST
[2022-07-03 追記] 以下を書いたのは 2020-02-08 で、その後厚労省サイトからは自動翻訳は消えたようだ。ところが、たまたまkeijiさんのまとめてくださった表にあった東京都の新型コロナウイルス感染症にかかる相談窓口についてで右上のEnglishをクリックしたところ、例の半ば意味不明なJ-SERVERの自動翻訳が! なお、都内の最新感染動向については Updates on COVID-19 in Tokyo というすばらしい英訳をボランティアで作っておられるとのこと。 毎日新聞の厚労省HP、新型肺炎の外国語情報で誤訳多発 「手洗い重要」が「トイレ重要」という記事によれば,厚労省の新型コロナウイルス感染症についてのホームページ自動翻訳が,「例えば「手洗いが重要」が韓国語で「トイレが重要」、「水際対策」が中国語で「水辺の対策」と誤訳されている。韓国語も「物価の対策」とも読める
tl:dr(要約) 文部科学省の四分位数の定義は,Excel(2通り)やR(9通り+1)のどれとも異なる。オレオレ定義が悪いわけではないが,これ以外を×にする先生が現れないことを望む。 文科省による四分位数の定義 平成29年(2017年)告示の中学校学習指導要領の数学では,「資料の活用」が「データの活用」と改称された。2年生の「データの活用」では「四分位範囲や箱ひげ図の必要性と意味を理解すること」「四分位範囲や箱ひげ図を用いてデータの分布の傾向を比較して読み取り,批判的に考察し判断すること」という文言が新しく入った。これは今まで高校「数学I」で扱われていた内容である。 文科省は学習指導要領解説も公開している。こちらは法的拘束力はないが,教科書の著者たちは,文科省の意図に沿う教科書を作るため,これを熟読することになる。 中学校学習指導要領解説の数学編には,箱ひげ図・四分位数・四分位範囲につい
はじめに ワードクラウド(word cloud)とは頻出語を頻度に比例する大きさで雲のように並べたものです。 英語のワードクラウドは wordcloud ライブラリで簡単に描けます。あらかじめ pip install wordcloud などとしてインストールしておきます。テキストとしては何でもいいのですが、ここでは WordCloud() の説明文(docstring)を用いてみます: from wordcloud import WordCloud text = WordCloud.__doc__ wc = WordCloud(width=480, height=320) wc.generate(text) wc.to_file('wc1.png') 日本語はこのように簡単にはいきません。まずは単語に分解しなければなりません(形態素解析)。そのためのツールとして、昔から有名なMeCab(
ヘルスケアデータの心拍数を読む iPhoneの「ヘルスケア」アプリを開き,右上の自分のアイコンをタップし,「すべてのヘルスケアデータを書き出す」をタップする。共有方法としては,最近はAirDropでMacに送っている。 以前にこのページで紹介していたのは「"ファイル"に保存」でiCloud Driveに保存する方法であった。iPhoneがWi-Fiでインターネットに接続していなければ同期しないかもしれないので注意。MacのFinderでiCloud Driveにアクセスし,「書き出したデータ.zip」というファイルをカレントディレクトリに持ってきて(あるいは以下のZipファイル名としてフルパスで '/Users/自分の名前/Library/Mobile Documents/com~apple~CloudDocs/書き出したデータ.zip' を指定して),次のスクリプトを実行する。 読む方法
次のページ
このページを最初にブックマークしてみませんか?
『奥村晴彦 Haruhiko Okumura』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く