2008-10-07 27 views
19

Quando si sviluppa un database di articoli in una Knowledge Base (ad esempio), quali sono i modi migliori per ordinare e visualizzare le risposte più pertinenti alla domanda di un utente?Algoritmi di ranking/rilevanza di ricerca

Utilizzeresti dati aggiuntivi come la ponderazione delle parole chiave in base al fatto che gli utenti precedenti abbiano trovato l'articolo di aiuto o trovi che un semplice algoritmo di corrispondenza delle parole chiave sia sufficiente?

risposta

2

Questa è una domanda difficile, e aziende come Google stanno facendo molti sforzi per rispondere a questa domanda. Date un'occhiata a Google Enterprise Search Appliance o Exalead Enterprise Search.

Quindi, come opinione personale, non penso che nessun approccio "ingenuo" possa migliorare molto il risultato rispetto alla ricerca di parole chiave ingenue e l'ordinamento in base al numero di visualizzazioni sui documenti.

Se hai la possibilità di esporre la tua knowledge base al web, allora fallo e lascia che il tuo motore di ricerca preferito gestisca la ricerca per te.

0

corrispondenza delle parole chiave non è sufficiente quando si tratta di domande, è necessario capire l'intenzione, come dicono Joannes un tema molto caldo in cerca

2

Un po 'più la specificità del problema esatto sarebbe bene. Ci sono molte tecniche diverse che puoi usare. Molti di questi sono guidati da altri pezzi di dati. Ovviamente è possibile utilizzare Lucene e creare i propri indici. Ci sono legami per molte lingue a lucene. Andando su c'è anche il progetto Solr che è Lucene con molti strumenti e funzionalità extra intorno. Potrebbe essere più simile a quello che stai cercando.

L'intento è difficile e la maggior parte dei motori di ricerca moderni si basano su intenti statistici per aiutare nell'ordinazione dei risultati. È sempre possibile avere questo pulsante utile articolo e memorizzare il testo della query che porta a documenti utili. È quindi possibile aggiungere un livello di informazioni all'indice per aumentare determinate parole o frasi e aiutarle a scegliere determinati documenti.

Alcune cose a cui pensare ... Quanti documenti? Qual è la lunghezza media? Sono aggiornati frequentemente? Cosa fanno gli utenti con i documenti? Che aspetto ha la diffusione di parole uniche nei documenti? (Più semplicemente è facile abbinare una query con uno o più documenti specifici basati su caratteristiche uniche comuni.)

Se è sul web, puoi sempre creare un motore di ricerca personalizzato google che cerca il tuo sito solo se tu potrebbe trovare ciò non ottimale per una serie di motivi.

È sempre possibile iniziare con un indice semplice e renderlo gradualmente più sofisticato parlando con gli utenti e acquisendo dati.

10

Forse l'approccio più semplice e ingenuo che darà subito risultati utili sarebbe quello di implementare *tf-idf:

Variazioni del sistema di ponderazione TF-IDF sono spesso utilizzati dai motori di ricerca come strumento centrale nel punteggio e classificare la pertinenza di un documento in base a una query utente. tf-idf può essere usato con successo per filtrare le parole d'arresto in vari campi, incluso riepilogo e classificazione del testo.

In una recente domanda relativa mio Qui ho imparato di un ottimo libro gratuito su questo argomento, che è possibile scaricare o leggere online:

An Introduction to Information Retrieval

1

Credo che l'angolo qui non è il recupero stesso ... riguarda il punteggio della rilevanza delle informazioni recuperate (un approccio più reattivo e passivo) che può essere successivamente utilizzato per migliorare il motore di ricerca.

Credo che si può provare -

  1. knn su TFIDF per il recupero delle informazioni

  2. mano codifica queste informazioni recuperate un relevency punteggio

  3. Poi regredire quel punteggio di predire il punteggio per un annullamento del risultato della ricerca e ordinamento.

Solo un pensiero ...

Il terzo punto è in realtà basata su un algoritmo Rocchio. Potete vederlo here