Il miglior analizzatore cross-language da utilizzare con l'indice lucene [chiuso]

StackOverflow https://stackoverflow.com/questions/1001003

  •  05-07-2019
  •  | 
  •  

Domanda

Sto cercando feedback su quale analizzatore utilizzare con un indice che abbia documenti da più lingue. Attualmente sto usando il sempliceanalyzer, in quanto sembra gestire la maggior parte delle lingue. La maggior parte dei documenti da indicizzare sarà l'inglese, ma ci sarà anche la lingua occasionale a doppio byte indicizzata.

Ci sono altri suggerimenti o dovrei semplicemente attenermi al simpleanalyzer.

Grazie

È stato utile?

Soluzione

SimpleAnalyzer è davvero semplice, tutto ciò che fa è in lettere minuscole. Avrei pensato che StandardAnalyzer avrebbe dato risultati migliori di SimpleAnalyzer anche con dati in lingua non inglese. Potresti forse migliorarlo leggermente fornendo un elenco personalizzato di parole d'ordine oltre a quelle di lingua inglese predefinite.

Altri suggerimenti

Dalla tua descrizione, presumo che tu abbia un documento in più lingue ma ogni documento ha 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 del linguaggio per indicizzare. Per ottenere i risultati corretti per la ricerca, è necessario applicare l'identificazione della lingua alla query di ricerca e utilizzare tale analizzatore.

Il lato positivo qui è che sarai in grado di usare stemmer e amp; specifici della lingua; stopwords, aumentando la qualità della ricerca. Il sovraccarico 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 potrebbero risentirne. Ho usato questo paio di anni fa e i risultati sono stati migliori del previsto.

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

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 alla pronuncia delle parole. Se non hai abilitato il stemming, probabilmente sarà adeguato.

Prova puramente aneddotica, ma per il nostro sistema utilizziamo una versione (personalizzata, ma non pertinente) di StandardAnalyzer . I nostri documenti potrebbero non essere solo in lingue diverse tra loro, ma possono contenere blocchi di lingue diverse (ad esempio, immagina un articolo scritto in giapponese con commenti in inglese), quindi è difficile annusare la lingua.

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

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

Quindi, in base al fatto che non sono sommerso da lamentele da parte degli utenti (molto occasionali, principalmente di cinese, ma nulla di grave e sono facilmente spiegabili) sembra essere "abbastanza buono" per molti casi.

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

Per le migliori prestazioni IR tra le lingue, sceglierei un analizzatore da 4/5 grammi, ha dimostrato di funzionare alla grande in molte lingue. Potrebbe anche funzionare meglio di SimpleAnalyzer anche per l'inglese. Vedi http://www.eecs.qmul.ac. uk / ~ christof / html / publications / inrt142.pdf per esempio.

Ho esaminato questo , ma da un altro angolo. Sembra che non ci sia un analizzatore generale: ogni lingua ha bisogno del suo approccio per i migliori risultati.

Innanzitutto, dovresti scoprire che qual è la tua lingua? Ad esempio i miei documenti sono presenti inglese, giapponese o persiano. puoi trovare la lingua del tuo documento procedendo su Caratteri UTF-8.

Quindi, quando scopri che il tuo documento è in quale lingua, puoi analizzarlo analizzatore specifico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top