150行のPythonコードでフルテキスト検索エンジンを作る
(bart.degoe.de)英語版Wikipediaのタイトル+要約の全データを使い、特別な技術ではなく検索エンジンの基礎を一歩ずつ説明した記事
-
Abstractオブジェクトを作ってデータを準備
-
Indexを生成 : トークン化およびフィルタリング
→ 小文字化
→ ステミング(Stemming)
→ 英語で最もよく使われる25個の単語を除外(the,be,to,of,a..)
-
基本検索を作る
-
関連度機能を追加 : Term Frequency(要約文でその単語がどれだけ多く使われたか)
-
Inverse Document Frequencyを追加 : この文書に関連付けられた他の文書の数
1件のコメント
ハングルの初声検索にも対応したファジー文字列検索 https://ja.news.hada.io/topic?id=3631
この記事とは技術的な基盤や実装はまったく異なりますが、基礎的な部分を段階的に詳しく説明した記事なので、興味深く読みました。
このような全文検索/トピックモデリング/ドキュメントインデキシング/類似度に関連する機能を、もう少し本格的に実装した Python ライブラリはいくつかあります。
Whoosh : https://pypi.org/project/Whoosh/
GenSim : https://github.com/RaRe-Technologies/gensim
SQLite には Full-Text-Search 拡張があります。