2009-09-14 12 views
13

Ho studiato tecniche di ricerca di suono, metafono e altre stringhe negli ultimi giorni, e nella mia comprensione entrambi gli algoritmi funzionano bene nella gestione di parole non inglesi tradotte in inglese.Abilitazione soundex/metaphone per caratteri non inglesi

Tuttavia, il requisito che vorrei sarebbe che tale ricerca funzionasse nelle lingue originali, non trasferite, alfabeti accomodanti come tedesco, norvegese e persino alfabeti cirillici.

Esistono algoritmi di ricerca in grado di gestire completamente questi alfabeti? O sto meglio usando librerie di ricerca full-text di terze parti come Lucene? Di conseguenza, la domanda diventa: "Lucene gestisce alfabeti non inglesi?"

+1

Se il tuo caso d'uso è solo ricerca testuale in lingue diverse dall'inglese, potresti non aver bisogno di soundex. Hai bisogno di Lucene con un Analizzatore appropriato, come hanno detto ire_and_curses. Se vuoi gestire diverse varianti di scrittura della stessa parola, avrai bisogno di un algoritmo di corrispondenza fonetica. Puoi dire di più sul tuo caso d'uso? –

risposta

15

Non sono un esperto in questo settore, ma le vostre esigenze mi sembrano abbastanza difficili. Soundex è stato specificamente progettato per suoni inglesi e personaggi. Non penso che funzionerà bene per le lingue non inglesi. Vedi ad esempio le risposte a this related question.

Double-Metaphone è un tentativo di gestire variazioni molto più complesse rispetto a Soundex o Metaphone ed è stato progettato per gestire le irregolarità in una gamma di lingue. Potrebbe essere sufficiente per le tue esigenze. C'è una lista di implementazioni di libreria sulla pagina collegata.

Il supporto per altre lingue in Lucene si basa sul concetto di Analyzers. Lucene viene fornito con un set di analizzatori per lingue diverse (sebbene non sia stato possibile trovare l'elenco predefinito), ma la qualità potrebbe essere quite variable.

+0

Sembra che gli analizzatori Lucene + siano ciò che cerco davvero, grazie. :) –

+0

che dire di lingue cinesi, giapponesi, arabe e indiane? – Sharique

0

Ci sono alcuni buoni riferimenti su Wikipedia, a partire dall'articolo Soundex. Non so se esistono librerie esistenti progettate per gestire una così ampia varietà di lingue.

+0

I riferimenti tutti puntano a algoritmi che gestiscono le ortografie anglicizzate di nomi europei. Non ho visto nessuno che effettivamente gestisca i caratteri speciali così come sono, a meno che non li capisca male. –

+1

Ho pensato che forse alcune delle varianti di Soundex sono state progettate per funzionare meglio con altre lingue, ma sono piuttosto incentrate sull'ortografia inglese o anglicizzata. Non sarebbe difficile scrivere qualcosa come Soundex per ognuna di quelle lingue, ma probabilmente avrai bisogno dell'aiuto di un linguista, se non sei madrelingua. –

Problemi correlati