私は一連のクエリ間の類似度を計算し、各クエリの結果を設定しようとしています。私はtfidfのスコアとコサインの類似性を使ってこれをしたいと思います。私が持っている問題は、2つの列(パンダのデータフレーム内)を使ってtfidf行列を生成する方法を理解できないことです。私は2つの列を連結し、それは正常に動作しますが、どのクエリがどの結果に属しているかを追跡する必要があるので、使用するのは厄介です。一度に2つの列のtfidf行列を計算するにはどうすればよいですか?私はパンダとsklearnを使用しています。sklearnを使用して2つの異なる列の別々のtfidfスコアを計算する
ここに関連するコードです:
tf = TfidfVectorizer(analyzer='word', min_df = 0)
tfidf_matrix = tf.fit_transform(df_all['search_term'] + df_all['product_title']) # This line is the issue
feature_names = tf.get_feature_names()
は私がtf.fit_transformへの引数として[ 'PRODUCT_TITLE'] [ 'SEARCH_TERMを'] df_all渡すとdf_allしようとしています。これは、文字列を一緒に連結するだけで、search_termとproduct_titleを比較できないため、明らかに機能しません。また、これについてもっと良い方法がありますか?
あなたはこの 'df_all [「SEARCH_TERM」] +「」+ df_all [「PRODUCT_TITLE」]'他の賢明なあなたが最初に組み合わせることがありますようにスペースを追加する必要があります検索の最後の単語がある商品の単語 – maxymoo
これはデフォルト値であるため、 'analyzer = word'は必要ありません – maxymoo
私のコードのその行は私が望む通りではありません。検索と商品の間のコサインの類似性を計算できるように別々にしてください。 – David