エイエイレトリック

なぐりがき

2022-01-01から1年間の記事一覧

DjangoCongress2022 でドキュメント生成について発表しました

https://django.connpass.com/event/259310/ より 11/12に DjangoCongress2022 で「OAI3を使ったDjango REST frameworkのドキュメント生成とカスタマイズ」というタイトルで発表しました。 朝イチの発表にも関わらず、聴講してくださった方々、ありがとうご…

djangoのFileBasedCacheの使い方と仕組み

FileBasedCache の使い方と仕組みについてメモします。 データベースを用意するまでもないけど、情報をキャッシュしたいときによさそうです。 ファイルで出力するのでキャッシュしたかどうか、キャッシュが残っているかどうかがわかりやすいためデバッグしや…

pythonのunittest.Testcaseでmockする・patchする

テストコードで活躍する mock。 だが毎回 これってどこをmockすればいいんだ…… と必要以上に mock.patch を書いてしまいます。 python の公式ドキュメントや解説記事では、mock 単体の振る舞いについて紹介していることが多く、最初の頃は でも実際どう組み…

textlintのインストールから新しいルール作成までやってみた

textlintを使ったルールを作成しようと四苦八苦したので作業ログを残しておこうと思います。 javascript初心者 (簡単なチュートリアルを一通り終えた程度) が実装していることを先に述べておきます。 MacBook Pro、macOS 12.4 Montereyで確認しています。 np…

NLTKのngram言語モデルを日本語データで使う

以前の記事で、古典的ngram言語モデルについて、NLTKを利用し、英語データセットの結果をまとめました。 eieito.hatenablog.com 単語を分かち書きさえすれば日本語でも実行可能なので、日本語データセットでパープレキシティを算出していきます。 データ 学…

ngram言語モデルについてまとめる (neural language model)

4記事にわたり、複数の古典的ngram言語モデルについて試しに実装してきました。 torchtextのデータセットを使ってきたので、pytorchで簡単な言語モデルを作ってみます。 元となる論文があるわけではないですが、ネット上に多数実装が多数あるので、それらを…

ngram言語モデルについてまとめる (Interpolated Kneser–Ney smoothing)

eieito.hatenablog.com 前回、NLTKで動かしてみた Interpolated Kneser–Ney smoothing (長いので以降 Interpolated KNと略します) をpythonで実装してみました。 詳細は gist にアップロードした notebook に記載しています。(二度手間になるのでnotebook …

ngram言語モデルについてまとめる (NLTKのngram言語モデル)

Kneser-Ney smoothing を実装しようと調べていたところ、NLTKで実装されていたのでNLTKのngram言語モデルの使い方についてまとめます。 前処理にちょっと癖があるものの、エントロピーなど数値の算出が共通化されているのでモデルごとの違いを比較しやすい気…

ngram言語モデルについてまとめる (ヘルドアウト推定・Good-Turing)

前回に続いて、古典的な言語モデルについてpythonで実装して比較していきます。 eieito.hatenablog.com add-one や ELE は下の式をベースに、対象の単語の ngram と (n-1)gramの 頻度 を使って確率を求めていた。 今回は頻度 r に注目した手法です。 未出現…

ngram言語モデルについてまとめる (add-one)

サイコロ本 (統計的自然言語処理の基礎) で確率的言語モデル(ngram言語モデル) のバリエーションについて少し勉強したので、実装して比較してみます。 ngram言語モデル スムージング 1-加算 (add-one) Lidstoneの法則 実装 前処理 データ tokenizer vocab co…