2009-06-16 6 views
6

Sto cercando un riscontro su quale analizzatore utilizzare con un indice che ha documenti da più lingue. Attualmente sto usando il simpleanalyzer, in quanto sembra gestire la più ampia quantità di lingue. La maggior parte dei documenti da indicizzare sarà in inglese, ma ci sarà anche l'occasionale linguaggio a doppio byte indicizzato.Analizzatore cross-language migliore da utilizzare con l'indice lucene

Ci sono altri suggerimenti o dovrei limitarmi a usare il simpleanalyzer.

Grazie

risposta

1

SimpleAnalyzer è molto semplice, non fa altro che lettere minuscole i termini. Avrei pensato che lo StandardAnalyzer avrebbe dato risultati migliori di SimpleAnalyzer anche con dati di lingua diversa dall'inglese. Potresti forse migliorare leggermente fornendo un elenco personalizzato di parole di arresto oltre a quelle di lingua inglese predefinite.

2

Ho usato StandardAnalyzer con parole non inglesi e funziona bene. Si occupa anche di personaggi accentati. Se la lingua è CJK (cinese, giapponese, coreano), russo o tedesco, potrebbe avere problemi, ma sospetto che la maggior parte dei problemi sarà correlata allo scatenarsi delle parole. Se non hai attivato lo stemming, sarà probabilmente adeguato.

6

Dalla tua descrizione, presumo che tu abbia un documento di più lingue ma ogni documento ha il testo in una sola lingua.

In questo caso, è possibile utilizzare l'identificazione della lingua di Nutch per ottenere la lingua del documento. Quindi utilizzare il rispettivo analizzatore di lingua per indicizzare. Per ottenere risultati corretti per la ricerca, è necessario applicare l'identificazione della lingua alla query di ricerca e utilizzare tale analizzatore.

Il vantaggio qui è che sarete in grado di utilizzare parole d'arresto specifiche della lingua &, aumentando la qualità della ricerca. L'overhead aggiuntivo durante l'indicizzazione dovrebbe essere accettabile. Tuttavia, le query di ricerca in cui l'identificazione della lingua non riesce a identificare la lingua corretta possono risentirne. Ho usato questo paio di anni fa e i risultati sono stati migliori del previsto.

Per CJK, è possibile applicare una tecnica simile ma gli strumenti potrebbero essere diversi.

+0

Mi piacciono anche i vostri suggerimenti, più avanzati ma potrei migrare a questo. Offre un ottimo equilibrio. – Halirob

0

In primo luogo, dovresti scoprire qual è la tua lingua? Ad esempio i miei documenti sono in inglese , in giapponese o in persiano. è possibile trovare la lingua del documento per processo nei caratteri UTF-8.

Quindi, quando si trova che il documento è in quale lingua, è possibile analizzarlo con l'analizzatore specifico .

1

Prove puramente aneddotiche, ma per il nostro sistema utilizziamo una versione (personalizzata, ma non pertinente) di StandardAnalyzer. I nostri documenti possono non solo essere in lingue diverse tra loro, ma i documenti possono contenere blocchi di lingue diverse (ad esempio, immagina un articolo scritto in giapponese con commenti in inglese), quindi l'sniffing linguistico è difficile.

La maggior parte dei nostri documenti sono in inglese, ma numeri significativi sono in cinese e giapponese, con un numero inferiore in francese, spagnolo, portoghese e coreano.

Risultato finale? Utilizziamo StandardAnalyzer e abbiamo pochissimi reclami da parte di persone che utilizzano il sistema in lingue non romane sul modo in cui funziona la nostra ricerca. Il nostro sistema è in qualche modo "forzato" sui suoi utenti, a proposito, quindi non è come se le persone non si lamentassero ma si spostassero altrove; se sono infelici, generalmente lo sappiamo.

Quindi, basato sul fatto che non sono sommerso da lamentele da parte degli utenti (molto occasionali, soprattutto sul cinese, ma niente di serio e sono facilmente spiegabili), sembra essere "abbastanza buono" per molti casi.

1

La risposta corretta dipende dalla lingua principale (se presente).

Per le migliori prestazioni IR per cross-language, utilizzerei un analizzatore da 4/5 grammi, che ha dimostrato di funzionare perfettamente in molte lingue. Potrebbe anche funzionare meglio di SimpleAnalyzer anche per l'inglese. Vedere http://www.eecs.qmul.ac.uk/~christof/html/publications/inrt142.pdf per esempio.

I have looked into this, ma da un'altra angolazione. Sembra che non ci sia un analizzatore generale - ogni lingua ha bisogno del proprio approccio per i migliori risultati.