Ich versuche, die Ähnlichkeit zwischen einer Reihe von Abfragen zu berechnen und ein Ergebnis für jede Abfrage festlegen. Ich würde dies gerne mit Tfidf-Scores und Kosinusähnlichkeit tun. Das Problem, das ich habe, ist, dass ich nicht herausfinden kann, wie man eine Tfidf-Matrix unter Verwendung von zwei Spalten (in einem Pandas-Datenrahmen) erzeugt. Ich habe die zwei Spalten verkettet und es funktioniert gut, aber es ist umständlich zu verwenden, da es verfolgen muss, welche Abfrage zu welchem Ergebnis gehört. Wie würde ich eine tfidf-Matrix für zwei Spalten gleichzeitig berechnen? Ich benutze Pandas und Sklearn.Berechnung separater Tfidf-Scores für zwei verschiedene Spalten mit sklearn
Hier ist der entsprechende Code:
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()
Ich versuche df_all zu passieren [ 'search_term'] und df_all [ 'PRODUCT_TITLE'] als Argumente in tf.fit_transform. Dies funktioniert eindeutig nicht, da es nur die Strings zusammenfügt, was es mir nicht erlaubt, den Suchbegriff mit dem Produkttitel zu vergleichen. Gibt es vielleicht auch einen besseren Weg?
Sie benötigen einen Platz in wie dieses 'df_all [‚search_term‘] +„“+ df_all [‚PRODUCT_TITLE‘] hinzuzufügen' andere weise können Sie die ersten sein, die Kombination von Wort des Produkts mit dem letzten Wort der Suche – maxymoo
auch brauchen Sie nicht analyzer = Wort, da dies der Standardwert ist – maxymoo
Die Zeile in meinem Code ist nicht das, was ich will, ich möchte die Begriffe und Produkte zu getrennt sein, damit ich die Kosinusähnlichkeit zwischen der Suche und dem Produkt berechnen kann. – David