web-dev-qa-db-ja.com

pythonでのgensim BM25ランキングの使用方法

GensimにBM25ランキング機能があることがわかりました。しかし、私はそれを使用するチュートリアルを見つけることができません。

私の場合、クエリが1つありました。検索エンジンから取得されたいくつかのドキュメント。 gensim BM 25ランキングを使用してクエリとドキュメントを比較し、最も類似するものを見つける方法

Gensimは初めてです。ありがとう。

クエリ:

"experimental studies of creep buckling ."

文書1:

" the 7 x 7 in . hypersonic wind tunnel at rae farnborough, part 1, design, instrumentation and flow visualization techniques . this is the first of three parts of the calibration report on the r.a.e. some details of the design and lay-out of the plant are given, together with the calculated performance figures, and the major components of the facility are briefly described . the instrumentation provided for the wind-tunnel is described in some detail, including the optical and other methods of flow visualization used in the tunnel . later parts will describe the calibration of the flow in the working-section, including temperature measurements . a discussion of the heater performance will also be included as well as the results of tests to determine starting and running pressure ratios, blockage effects, model starting loads, and humidity of the air flow ."

文書2:

" the 7 in. x 7 in. hypersonic wind tunnel at r.a.e. farnborough part ii. heater performance . tests on the storage heater, which is cylindrical in form and mounted horizontally, show that its performance is adequate for operation at m=6.8 and probably adequate for flows at m=8.2 with the existing nozzles . in its present state, the maximum design temperature of 680 degrees centigrade for operation at m=9 cannot be realised in the tunnel because of heat loss to the outlet attachments of the heater and quick-acting Valve which form, in effect, a large heat sink . because of this heat loss there is rather poor response of stagnation temperature in the working section at the start of a run . it is hoped to cure this by preheating the heater outlet cone and the quick-acting Valve . at pressures greater than about 100 p.s.i.g. free convection through the fibrous thermal insulation surrounding the heated core causes the top of the heater Shell to become somewhat hotter than the bottom, which results in /hogging/ distortion of the Shell . this free convection cools the heater core and a vertical temperature gradient is set up across it after only a few minutes at high pressure . modifications to be incorporated in the heater to improve its performance are described ."

ドキュメント3:

" supersonic flow at the surface of a circular cone at angle of attack . formulas for the inviscid flow properties on the surface of a cone at angle of attack are derived for use in conjunction with the m.i.t. cone tables . these formulas are based upon an entropy distribution on the cone surface which is uniform and equal to that of the shocked fluid in the windward meridian plane . they predict values for the flow variables which may differ significantly from the corresponding values obtained directly from the cone tables . the differences in the magnitudes of the flow variables computed by the two methods tend to increase with increasing free-stream mach number, cone angle and angle of attack ."

ドキュメント4:

" theory of aircraft structural models subjected to aerodynamic heating and external loads . the problem of investigating the simultaneous effects of transient aerodynamic heating and external loads on aircraft structures for the purpose of determining the ability of the structure to withstand flight to supersonic speeds is studied . by dimensional analyses it is shown that .. constructed of the same materials as the aircraft will be thermally similar to the aircraft with respect to the flow of heat through the structure will be similar to those of the aircraft when the structural model is constructed at the same temperature as the aircraft . external loads will be similar to those of the aircraft . subjected to heating and cooling that correctly simulate the aerodynamic heating of the aircraft, except with respect to angular velocities and angular accelerations, without requiring determination of the heat flux at each point on the surface and its variation with time . acting on the aerodynamically heated structural model to those acting on the aircraft is determined for the case of zero angular velocity and zero angular acceleration, so that the structural model may be subjected to the external loads required for simultaneous simulation of stresses and deformations due to external loads ."
13
dd90p

完全な開示BM25ランキングを使用した経験はありませんが、gensimの類似性インデックスと共に、gensimのTF-IDFおよびLSI分散モデルについてはかなりの経験があります。

読みやすいコードベースを維持するのに作者は非常に良い仕事をしているので、このような問題が再び発生した場合は、ソースコードにジャンプすることをお勧めします。

ソースコードを見る: https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/summarization/bm25.py

そこで、上記で貼り付けたドキュメントでBM25()オブジェクトを初期化しました。

私たちの古き良き友人ラディムには、_average_idf_を計算する関数が含まれていなかったようです。これは大したことではありません。原因として、行65を単純化できます。

average_idf = sum(map(lambda k: float(bm25.idf[k]), bm25.idf.keys())) / len(bm25.idf.keys())

次に、_get_scores_の元の意図を正しく理解している場合は、次のようにするだけで、元のクエリに関する各BM25スコアを取得できます

scores = bm_25_object.get_scores(query_doc, average_idf)

これは、各ドキュメントのすべてのスコアを返します。次に、このウィキペディアのページで読んだ内容に基づいてBM25のランキングを理解している場合: https://en.wikipedia.org/wiki/Okapi_BM25

次のように、最高のスコアを持つドキュメントを選択するだけでよいはずです。

best_result = docs[scores.index(max(scores))]

では、最初のドキュメントがクエリに最も関連しているはずです。それがとにかくあなたが期待していたことだといいのですが、これが何らかの形で役に立ったことを願っています。幸運を!

17
mkerrig

上記の答えが正しいことを認めます。ただし、ここに着く他のコミュニティメンバーのために、2ビットを追加します。 :)

次の4つのリンクは静かで便利で、問題を包括的にカバーしています。

  1. https://github.com/nhirakawa/BM25 A Python BM25ランキング関数の実装。非常に使いやすく、プロジェクトにも使用しました。すばらしい!これはあなたの問題に役立つシステムだと思います。

  2. https://sajalsharma.com/portfolio/cross_language_information_retrieval 現在のシステム設計タスクの参照の描画に使用できるシステムでのOkapi BM25の非常に詳細で段階的な使用を示しています。

  3. http://lixinzhang.github.io/implementation-of-okapi-bm25-on-python.html Okapi BM25のみの追加コード。

  4. https://github.com/thunlp/EntityDuetNeuralRanking Entity-Duetニューラルランキングモデル。研究や学術研究に最適です。

平和!

---追加: https://github.com/airalcorn2/RankNet RankNetおよびLambdaRank

1
monkSinha