検索は、それを実行するのに非常に時間がかかるため、難しい作業です。大きなデータセットがある場合、1対1の検索を行うと、ユーザーの時間がかかります。

kaggleリンクからスタックオーバーフローデータセットがあります:https://www.kaggle.com/c/facebook-recruiting-iii-keyword-extraction/data
だから今、私たちにはタスクがあります:
SearchEngine_data.ipynb:このノートブックでは、データを取得し、重複を削除しています。次に、必要なタグを選択します。 4つのコアを一緒に使用すると、速度が増加し、1時間で2.5時間の作業が行われたため、マルチプロセッシングを使用して使用しました。 SQLiteデータベースに新しいProcessed DataFrameを保存しました。
Preprocessing.ipynb:このノートブックでは、タイトル、つまり質問のデータを前処理しています。 HTMLタグ、スペース、その他のジャンクまたはストップワードを削除しています。
SearchEngine_data.ipynb:このノートブックでは、クエリにアクセスするシステムを作成しています。つまり、予測システムを構築するための開始ステップです。最初にデータ全体をベクトル化し、クエリとデータベースの間にペアワイズ距離を使用しましたが、結果はマークまでではありませんでした。 TFIDFは弓よりも優れたパフォーマンスを発揮しました。
ClassificationMachineLearning.ipynb:3番目のステップのように、良い結果を得ることができなかったので、古典的な機械学習を使用することです。したがって、私がしたことは、このデータを使用して機械学習モデルを作成することです。タイトルは文字列値であるため、3番目のステップで弓よりも優れたパフォーマンスを発揮するtfidfvectorizer ass tfidfを使用しました。次のステップでは、モデルを電車、CV、テストに分割しました。このようなまばらなベクトルがあったので、2つの選択肢LRまたはSVMがありました。私たちはユニグラムとビッグラムの両方で演奏しましたが、ビッグラムではそれは過度にフィットしていました。その後、パフォーマンスが向上したため、最終的にUnigramでLRを使用しました。
次に、クエリのプログラミング言語を予測した後、クエリにそれを追加します。主にStackOverFlowで何かを検索するときに、質問にタグを追加することがよくあります。
次に、3番目のステップで行ったステップを繰り返しましたが、結果ははるかに良くなりました。