1日一回継続コミット
はや9ヶ月連続コミットしている。
Rustのチュートリこなしたり、gremlin language(グラフデータベース向けのクエリ言語の一種)向けのquery builderを実装した。
それ以外にもAtCorderやLeetCodeの問題を解き続けた。
ほかには、先程NLPでおなじみのtf-idfを実装した。(この実装がさくっとできたので、嬉しくなり久々にこの記事を書いている)
tf-idf
文書の類似度を精度悪くてもさくっと評価したかったのでtf-idfと距離関数を実装した。
Pythonで実装したのだが、NumPyなどのサードパーティライブラリを使わず、Pure Pythonで実装を行った。
tf-idfについてはWikipediaと、ブログ記事および書籍「情報検索の基礎」を読み参考にした。
より理解を含めるために書籍「統計的自然言語処理の基礎」のtf-idfや書籍「人工知能学大辞典」の文書要約、書籍「情報検索と言語処理」、書籍「情報検索アルゴリズム」、書籍「自然言語処理の基本と技術」を見直した。
以下の点が今回の発見だった。
- 上述した文献の数式をすんなり理解でき、プログラムに落とし込めれた。例えば、TFやIDF。
- 上述した文献の概念をおおよそ理解できた。例えば文書頻度などの統計数学。
- 10年前に学んだ時に理解できなかったことが理解できたこと。
次のステップとしては、コサイン類似度を使った文書の類似度の判定や、せっかく多くのNLPの教材を持っているので、再キャッチアップすること。いまなら理解度が昔より上がっている。
ファイナンスの基礎
ベンチャーやスタートアップでのファイナンス知識が足りなかったので、読んだ。事業計画の作り方など。
ひとまず @tkihira さんの記事 スタートアップに転職する時に最低限知っておくべき株の話 を読んで書籍「起業のファイナンス」を購入し読んだ。
組織論、エンジニア組織
あらためて下記を読み直した。