2009-04-23 13 views
0

Ich versuche eine Suchmaschine zu erstellen, die Online-Kleinanzeigen wie Oodle, eBay-Motoren und Craigslist durchläuft. Ich habe auch eine große Datenbank von Standard-Fahrzeugnamen und Spezifikationen über sie. Was ich tun möchte, ist für jeden Datensatz, den ich über die klassifizierte Website finde, in der Lage sein, genau zu bestimmen, welches Fahrzeugmodell, Stil es ist (aus meiner Datenbank). Zum Beispiel ist ein Standardname für einen Ford LKW in meinem DB: 2003 Ford F150.Was ist die beste Data-Mining-Methode für die Fahrzeugsuche?

Aber auf klassifizierten Websites, die Menschen beziehen können, ist wie: "2003 Ford F 150" oder "2003 Ford F-150" oder "03 Ford Truck 150". Gibt es einen effektiven Data-Mining/Text-Klassifizierungsalgorithmus, um diese Texte auf den obigen Standardnamen normalisieren zu können?

Antwort

1

Sie könnten die Levenshtein distance verwenden, um die gefundene Zeichenfolge mit Ihren Datenbankeinträgen abzugleichen.

Eine andere (wahrscheinlich bessere) Idee besteht darin, die Strings zu tokenisieren und einen term vector model für die Fahrzeugnamen zu verwenden. Auf diese Weise können Sie die Kosinusähnlichkeit verwenden, um relevante Übereinstimmungen zu finden.

0

Wenn Sie eine ganze Suchmaschine entwickeln, die sowohl die Verwendung als auch die Größe skalieren soll, benötigen Sie etwas robustes, um Ihre Abfragen zu unterstützen.

Wenn Sie die Bearbeitungsdistanz verwenden, bieten Bed-trees eine gute Alternative für Ihre Indexstruktur. Ein weiterer guter Ansatz, abhängig von der Größe Ihres Datensatzes, ist die Verwendung eines Levenshtein automata. Levenshtein-Automaten eignen sich auch hervorragend für Funktionen zur automatischen Vervollständigung, die Sie möglicherweise benötigen, um eine Suchmaschine zu entwickeln.

Ein anderer Ansatz zum Bearbeiten der Entfernung ist die Verwendung von N-Grammen in Kombination mit dem Jaccard-Index. Für diesen Ansatz können Sie Minhash + LSH verwenden. Sie können Jaccard auch als Abstandsmetrik (1 - Jaccard-Index) verwenden, die die Dreiecksungleichung berücksichtigt und daher in einem Metrikbaum wie VP-tree verwendet werden kann.

Einer dieser Ansätze wird Ihnen sicherlich helfen.

Verwandte Themen