Lingua (umana) di un documento
-
05-07-2019 - |
Domanda
Esiste un modo (un programma, una libreria) per sapere approssimativamente in quale lingua è scritto un documento?
Ho un sacco di documenti di testo (~ 500K) in lingue miste da importare in un CMS (Drupal) abilitato per i18n ..
Non ho bisogno di abbinamenti perfetti, solo qualche ipotesi.
Soluzione
C'è un modo abbastanza semplice per farlo, dato che hai dati corpus in tutte le diverse lingue che dovrai identificare. Si chiama modellazione n-gram. Penso che Lingua :: Identify questo già, però, quindi è la tua scommessa migliore piuttosto che implementare la tua.
Altri suggerimenti
Direi che la tua scommessa migliore è cercare parole chiave - articoli, quel genere di cose - che sono uniche per le lingue che stai cercando. & Quot; Un " verrà visualizzato in spagnolo e francese, ad esempio, ma "une" è identificabile in modo francese mentre "unos", ad esempio, è identificabile in spagnolo. Anche i segni diacritici sono utili: vedrai " & # 241; " in spagnolo e forse portoghese, "quot" & # 231; " in francese e pochi altri ... quel genere di cose.
modifica: la soluzione di Paul è probabilmente la migliore; sembra che usi metodi come quello che ho delineato, oltre a qualche extra.
Eseguendo una ricerca su Google per " determina la lingua del documento " Ho trovato molti siti diversi che ti aiuteranno. Il terzo link nella prima pagina alla fine mi ha portato a una nella funzione nella API del codice di Google che è esattamente ciò di cui hai bisogno.
L'API di traduzione di Google è interessante e ha un'interfaccia REST. Ma devo inviarlo MOLTO GRANDE documento (sì, potrei usare un estratto) e, anche se Google è Google, non penso che questo equo.
Anche i documenti non sono miei e Id chiedo al mio cliente se è giusto inviarli a terzi (anche se, presto o tardi, G li riceverà ;)).
Penso che seguirò il percorso del Perl ...
Sembra ci sia un modulo Perl per questo: Lingua :: Identify
Paul.