Es gibt ein Problem, das wir zu lösen versuchen, wenn wir eine semantische Suche in unserem Datensatz durchführen möchten, dh wir haben domänenspezifische Daten (Beispiel: Sätze, die über Automobile sprechen)
Unsere Daten sind nur eine Reihe von Sätzen. Wir möchten einen Satz geben und die folgenden Sätze zurückerhalten:
- Ähnlich wie dieser Satz
- Hat einen Teil eines Satzes, der der Phrase ähnlich ist
- Ein Satz, der kontextuell ähnliche Bedeutungen hat
Lassen Sie mich versuchen, Ihnen ein Beispiel zu geben. Angenommen, ich suche nach dem Ausdruck "Kauferfahrung". Ich sollte folgende Sätze erhalten:
- Ich hätte nie gedacht, dass der Autokauf weniger als 30 Minuten dauern könnte, um zu unterschreiben und zu kaufen.
Ich fand ein Auto, das mir gefiel, und der Kaufvorgang war
unkompliziert und einfachIch habe es absolut gehasst, Auto einzukaufen, aber heute bin ich froh, dass ich es getan habe
Ich möchte die Tatsache hervorheben , dass wir nach kontextueller Ähnlichkeit suchen und nicht nur nach einer Brute-Force-Wortsuche.
Wenn der Satz andere Wörter verwendet, sollte er ihn auch finden können.
Dinge, die wir bereits versucht haben:
Offene semantische Suche Das Problem, mit dem wir hier konfrontiert waren, besteht darin, aus den uns vorliegenden Daten eine Ontologie zu generieren oder aus diesem Grund nach verfügbaren Ontologien aus verschiedenen Bereichen unseres Interesses zu suchen.
Elastische Suche (BM25 + Vektoren (tf-idf)), wir haben dies versucht, wo es ein paar Sätze gab, aber die Präzision war nicht so groß. Die Genauigkeit war ebenfalls schlecht. Wir haben es mit einem von Menschen kuratierten Datensatz versucht, der nur etwa 10% der Sätze erhalten konnte.
Wir haben versucht , verschiedene Einbettungen wie die einmal in der genannten Satz-Transformatoren und ging auch durch das Beispiel und versuchte , gegen unsere menschlichen kuratierte Reihe Bewertung und dass auch sehr geringe Genauigkeit hat.
Wir haben ELMO ausprobiert . Dies war besser, aber immer noch weniger genau als erwartet, und es gibt eine kognitive Belastung, um den Kosinuswert zu bestimmen, unter dem wir die Sätze nicht berücksichtigen sollten. Dies gilt sogar für Punkt 3.
Jede Hilfe wird geschätzt. Vielen Dank für die Hilfe im Voraus