2017-03-02 3 views
0

Ich habe eine Daten in unter Format, wobei erste Spalte den Knoten Produkte darstellt, stellen alle folgenden Spalten Eigenschaften der Produkte. Ich möchte Content Based Filtering Algo mit Kosinusähnlichkeit in Neo4j anwenden. Dafür glaube ich, ich muss die fx-Spalten als die Eigenschaften jedes Produktknotens definieren und diese Eigenschaften dann als einen Vektor bezeichnen und dann eine Kosinusähnlichkeit zwischen den Produkten anwenden. Ich habe Probleme, zwei Dinge zu tun: 1. Wie man diese Spalten als Eigenschaften auf einmal definiert (da die Spalten mehr als 100 sein könnten). 2. So rufen Sie alle Eigenschaftswerte als Vektor auf, um die Kosinusähnlichkeit anwenden zu können.Wie Content-basierte Filter anwenden in ne04j

Produkt f1 f2 f3 f4 f5

P1 0 1 0 1 1

P2 1 0 1 1 0

P3 1 1 1 1 1

P4 0 0 0 1 0

+0

überprüfen Sie diese https://neo4j.com/graphgist/a7c915c8-a3d6-43b9-8127-1836fecc6e2f –

+0

Ich habe dies bereits gesehen, aber ich habe Probleme mit Eigenschaften eines Knotens herumspielen. Wie nehme ich alle Eigenschaftswerte des Knotens als einen Vektor, der in Kosinusähnlichkeitsformulare eingegeben werden kann. –

Antwort

0

Sie können LOAD CSS verwenden, um Ihre Daten einzugeben.

Zum Beispiel diese Abfrage wird Ihre Datendatei und Ausgabe für jede Eingabezeile (ohne Berücksichtigung der Kopfzeile) eine name String eingelesen und eine props Sammlung:

LOAD CSV FROM 'file:///data.csv' AS line FIELDTERMINATOR ' ' 
WITH line SKIP 1 
RETURN HEAD(line) AS name, [p IN TAIL(line) | TOFLOAT(p)] AS props 

Auch wenn Ihre Daten eine Kopfzeile hat Die obige Abfrage überspringt sie, da sie nicht benötigt wird. Tatsächlich möchten wir die WITH HEADERS Option von LOAD CSV nicht verwenden, da das jede Datenzeile in eine Karte umwandeln würde, während es für unsere aktuellen Zwecke bequemer ist, jede Datenzeile als eine Sammlung von Werten zu erhalten.

Die obige Abfrage wird davon ausgegangen, dass alle Spalten sind durch Leerzeichen getrennt, dass die erste Spalte wird immer eine name Zeichenfolge enthält, und dass alle andere Spalten, die numerischen Werte enthalten, die in die gleiche Sammlung gesetzt werden sollten (mit dem Namen props).

Wenn Sie RETURN mit WITH ersetzen, können Sie zusätzliche Klauseln, um die Abfrage anhängen, die Verwendung der name und props Werte machen.

Verwandte Themen