はてだBlog(仮称)

私的なブログど真ん中のつもりでしたが、気づけばWebサイト系のアプリケーション開発周りで感じたこと寄りの自分メモなどをつれづれ述べています。2020年6月現在、Elasticsearch、pandas、CMSなどに関する話題が多めです。...ですが、だんだんとより私的なプログラムのスニペット置き場になりつつあります。ブログで述べている内容は所属組織で販売している製品などに関するものではなく、また所属する組織の見解を代表するものではありません。

自分用まとめ

自作の照合型ソートのスニペット例(JavaScriptでもmapやreduce、filter(手習いメモ) その4)

JavaScriptのmapやreduceは実用言語っぽい挙動で自分のようなぬる者にはありがたいよね〜のシリーズの第4弾です。 といいつつ、ある素材について、いざやってみるとfilterやreduceはおろか、メインロジック部分あたりではmapさえも使わなかったので、実際は…

N-Gramは部分一致っぽく当たるがそうでもないこともあるのは使い方次第(Elasticsearchを例にしてなんとなく説明)

Elasticsearchに限らずですが、検索エンジン案件ぽい話の際に、SQL/RDB界隈の部分一致検索のメタファーでN-Gramでの検索を語ることになりつつも、 結果、「部分一致」の先入観からかえってわかりにくくなる面もあって悩ましいということもなくはない...ので…

ゆるJOIN(JavaScriptでもmapやreduce、filter(手習いメモ) その3)

データのJOINと言えば、複数のデータセットをあるキーで完全一致するものですが、まれに、完全一致するようなレコードがあればそれと結合したいが、そのようなものがない場合でも、キーのフィールドの値のN文字以上の前方一致で最長の一致となるものがあれば…

JavaScriptでもmapやreduce、filter(手習いメモ) その2

次の記事のつづきです。 (このブログは全体的にそうですが、誰得でいうと私自身用って感じのスニペットですネ...) itdepends.hateblo.jp find 配列を前方一致でグループ化できるか 配列のintersect(順番維持) オブジェクト配列(順序はそれほど意味がない)を…

JavaScriptでもmapやreduce、filter(手習いメモ)

今更ですが、JavaScript(私がいるのはTypeScriptでもなくて、やっとES6ぐらいに合流した世界線です)にもmapやreduceがあることを知りまして、世間からの何周遅れを追いつきたく、手習いしてみた...という自分メモです。 個人的なmapやreduceあるいはこれら…

Pythonのopen関数での改行の扱い備忘録(newlineオプション、readlines、readline...)

Pythonのopen組み込み関数では、「改行」に関して「優しい」仕様になっています。 しかし、私のような日曜プログラマは半年に1回ぐらいやっちまうのですが、稀にこの気遣い仕様を忘れて、ハマってしまうこともあるので、ここに備忘録として記しておきます。 …

Pandasである一覧データから別のキー一覧指定のレコードのみ抽出(の処理時間傾向の雑な計測)

ある一覧データから別の一覧データのキーに存在するものを抽出するという要件があります。 Pandasで言うと、上図のように、2つのDataFrameをmerge(つまり表データのJOINの論法ですね)することで、このようなデータを取得するというのが私の手グセなのですが…

Pandasのapply関連の書きっぷりバリエーションと処理時間の雑な傾向確認

PandasでDataFrameのカラムAの値とBの値を結合して、新たにC列を作りたい...てなことがよくあると思います。 普段は自分の中で可読性が高いと思っているapply系の手グセで記述しているのですが、まれに、他の言語やフレームワークに置き換えるまではいかない…

時間がない人のための JavaScriptのPromise、await/asyncのシンタックスのつかみ重視の入門メモ

はじめに JavaScriptのPromiseとawait(とasync)による非同期処理と待ち合わせのシンタックス入門メモです。 次の記事の姉妹記事です。 itdepends.hateblo.jp 非同期処理を使いたい背景など JavaScriptを用いた要件で、非同期処理を織り交ぜて時間のかかる処…

最近のPythonでのコンカレント(並列)の非同期処理 async/await ・asyncioについて(ver 3.8で確認)

Pythonの非同期処理については、いろいろ歴史・経緯があるようです。 しかしながら、皆さんのおかげで、部外者が安易に言うのもはばかられますが、Python3.7あたりから、私のような日曜エンジニアでもおいしいところにありつけるようになってきた様子だった…

文字列の配列に対して、各文字列の前方の共通部分を抜き出すスニペット(Python、JavaScript)

文字列の配列に対して、各文字列の前方の共通部分(のみ)を抜き出すという例です。 Python等であれば、標準ライブラリなどにそのものズバリのものがありそうなという気もしましたが、ぱっと見見つけられませんでしたので、自作しました。 (この程度のもの…

Pythonで実装したJSONのdiffトイスクリプト(自分コピペ用)

下記の記事と似た主旨のオレオレメモです。 itdepends.hateblo.jp JSONファイルのdiffって有名ライブラリなどでは少しリッチすぎるかなという時に、機能が劣っていたり割り切りがあっても、自分で取り回しやすい自作のイディオムが欲しくなったのでコピペ用…

Pythonのネストされたdictに「a.b.c.d」のようなJavaScript風のアクセスを行う小品のスニペット例 2nd

下記の記事の続きです。自分でも続きがあったのかと思っておりますが、今回は、前回と同じ要領で、あるdictについて、特定のプロパティ(複数可能)を抜き出したdictを得るというミニDSL風の関数を作成しました(以下 hoge2.py)。 itdepends.hateblo.jp なお…

Pythonのネストされたdictに「a.b.c.d」のようなJavaScript風のアクセスを行う小品のスニペット例

Pythonのdict型のようなデータの配下の特定のプロパティに、「a.b.c.d」のような表記でアクセスできると、試験ツールやチェックツールで確認したいパターンを外部から入力として与えやすくなにかと便利だと感じています。 こういった使い捨てツールなどのた…

spaCyでの係り受けなど可視化(注:タイトル負けしています)

前の記事でspaCyをカジりました。 itdepends.hateblo.jp spaCyなどのNLTKでは語の依存関係などを解析できますが、その関係を可視化して文とは文章とはなんたるかを俯瞰したいということが頻出します。 spaCyについては標準で、係り受けなどの関係を可視化す…

Elasticsearchで検索〜pandasのDataFrameに格納(私的なスニペット)

Elasticsearchとpandasという組み合わせでいうと、Elasticsearchの公式サイトでも紹介があるeland | Elasticなのかなと思います。 しかしながら、ElandでElasticsearchの検索クエリをかませて、それをDataFrameに入れる方法が(おそらくそのような機能を具備…

Webサイトのアクセスログのよくあるかもしれない集計パターンの自分用覚書(Python/Pandas関連)

Webサイトのアクセスログの集計のワンライナーのようなものについては、かつてはいろいろ思うところがありました。 思うというか苦しめられておりました。 しかし、いまや 自分が語るには、この世界が発展・複雑化しすぎており、世界の片隅でのひとりごとと…

Python: wordcoludでタグクラウド画像生成

↓ Pythonのタグクラウド生成ライブラリで有名なword cloudを使って、まさにこんな感じの画像ファイルを出力します。 amueller.github.io github.com 日本語の場合、本来は、タグクラウドの元になるテキストについて統計的な処理や分かち書きをするところをふ…

Python: Pillowで画像にテキスト埋め込み(元画像なし版)

↓ Pythonのプログラムを実行して、まさにこんな感じの画像ファイルを出力します。 2020年の現在においては、Pillowというライブラリがデファクトのようです。 hoge$ pip3 list ... Pillow 7.1.2 ... pillow.readthedocs.io お作法のハンズオンとしては、次が…

openpyxl のさわりのサンプルコード(PythonでEXCELファイルを扱う一例)

はじめに 感染症の例を見ていると、可視化やそもそも現場でのデータ収集というのはなかなか難しいなと感じる次第です。 大半の混乱は一元化や入力の標準化などの情報化の定石で解決する部分もあるでしょうが、今回のような走りながら速記するというような状…

Elasticsearchにlivedoorレストランデータセットを取り込んでみる(Pandasで全文検索向けにプレデータ加工あり)

Elasitcsearchで「全文検索」寄りでいろいろ遊んでみようと思うと、程よい公開データが欲しくなります。 そんなデータの一例として、livedoorレストラン DataSetというのがありますので、こちらを利用させてもらって勉強するというのも一つの手かと思います…

ElasticsearchのSearchTemplate

Elasticsearchには、Search Templateという、よく使うクエリをElasticsearch自体に登録して、それをテンプレートにして検索クエリの一部を差し替えたような検索ができます。 使い所によって、共通化、タイプ量削減、設計方針の強制、コンセプトの共有、いろ…

diffの変種っぽい視点で見るPandasのイディオム

はじめに PandasのEDAに便利な部分を、データチェックに見立てて利用すると、目的外使用かもしれないけど、便利かも? という視点でのPandasのイディオムの寄せ集めです。 (よって、そう思って見なければ、Pandasの中途半端な入門例未満の断片集だったりし…

Pandas(他)のEDA前によく使う(かもしれない)私的前処理スニペット集

はじめに データサイエンス的な世界に限らずですが、本処理以上に「前処理」が勝負というところがあります。 ここで、「本格的な『前処理』の更に前段の『前処理』が必要になった」という経験はありませんか。 まあ、単なる言葉遊びに過ぎないところもありま…

WebRTCをかじってみた2020春

そろそろ私なんかでも日曜大工で遊べそうな雰囲気が漂ってきたWebRTCでの画面共有アプリを習作してみました、という例です。 なお、各種ソフトのバージョンはあえて割愛しますが、2020年5月2日に確認した内容の記事となりますので、そのような鮮度だとご承知…

Pandas番外編(strアクセサなど再発見)

Pandasのアクセサ、特にstrアクセサについては、シンタックスの外面がやや特殊に感じておおりました。 よって、挙動になれるまではどこまでOKなのかわかりにくいので、気持ちのどこかで利用をさけていたのですが、ある時期以降は宣言的にロジックを書けるの…

Python difflib 覚書

概要 Pythonのdifflibのうち、私のような軟派な用途にあたり便利だな・面白いなと思ったものをまとめてみました。 概要 オレ様チョイス 3大difflibライブラリ (1) difflib.SequenceMatcher・・・ ratio() (2) difflib.get_close_matches() (3) difflib.HtmlD…

BeautifulSoupの隣接ノード取得系のメソッドのまとめ および 他(コメント取得やテキスト取得、SoupStrainer)

BeautifulSoupについては、find系やselect系でのオブジェクト取得により取り回していくのが基本だとは思いますが、parentやnext_siblingなど隣接取得系(造語です)についても、たまに使うにせよ、使おうとするとどうだっけというところで悩ましいので、これ…

Pandas pivot、pivot_table、melt、stack、wide_to_longのシェイプ変更のイメージ(tidyデータ)

PandasにおけるDataFrameのシェイプ変更のメソッドである、 pivot、pivot_table、melt、stack、wide_to_longについて、これらをまとめて図解してみました。 実例 import pandas as pd import io df = pd.read_csv(io.StringIO(""" year,season,num 2010,春,4…

Pandas MultiIndexのオペレーションメモ

Pandasでgroupbyなどの際に思わず発生するMultiIndex。 いやもちろん、思わず...ではなくて正規の仕様なのですが、しばらく間が空くと少し勘を取り戻すのに苦労する仕様な気がします。 まあ間が空いていても空いてなくても、私の場合、reset_index()してしま…