検索用にテキストをトークン化する方法に関する戦略と、それらを実装する方法に関するいくつかのアイデアを探しています。
具体的には、ユーザーが生成したビジネスレビューをトークン化して、ビジネス検索エンジンを支援しようとしています。すべてのコードはPythonです。
少なくとも次のことを行う必要があると思います。
複数名詞を単数形に変換するこれがうまくいくように見えるinflect
という ライブラリを見つけましたが、誰かがそれを使った経験はありますか?英数字以外のすべての文字
を削除するこれは私にとって正規表現の仕事のようですが、他の提案を聞きたいです空白に基づいてトークン化し、連続する空白を単一の空白に変換する
これはPythonのカスタム文字列操作で実行できると思いますが、もっと良い方法があるかもしれません。
テキストをトークン化するために私がしなければならないことについて、他に誰かアイデアがありますか?また、上記の戦略を実装するために言及された手法とツールについてどう思いますか?
背景情報:(コメントからDough T
SolrまたはElasticsearchに関する提案まで)ElasticSearch
を使用しており、そのツールを使用して基本的なトークン化を行っています。トークン化後、テキストから意味を抽出するためにかなり複雑なセマンティック分析を適用する必要があるため、上記のトークン化を個別に実行します。指定方法を正確にトークン化する柔軟性と、トークンに独自のデータ注釈を付けて独自の形式でトークンを保存できるという利便性が必要です。
絶対に必要なものの1つは、トークンごとに1つの(大きな)データベースレコードであり、その場でアクセスおよび変更でき、そのトークンの使用法に関連するすべてのものが含まれています。ESトークン化を使用して、ドキュメントのインデックスが作成されるときにそれらを処理することは除外されていると思います。ESの分析モジュールを使用して、インデックスを付けずにテキストを分析し、トークンのデータベースレコードを構築/更新するために、各トークンを個別に処理することもできます...このアプローチに関する提案を求めています。