Algoritmo / ricerca sulla rilevazione del linguaggio del testo [chiuso]

-2

Sono interessato a trovare un approccio che rilevi la lingua di una stringa di testo. Come fa Google translate.

    
posta Sam Leach 03.02.2014 - 15:17
fonte

4 risposte

3

La prima sfida nell'identificazione della lingua è di restringerla a qualcosa che si può gestire. Ogni lingua ha la propria lista di frequenza delle lettere.

English: etao insr hldc umfp gwyb vkxj qz
French:  esai tnru lodc mpév qfbg hjàx èyêz çôùâ ûîœw kïëü æñ
German:  enis ratd hulc gmob wfkz vüpä ßjöy qx
Spanish: eaos rnid lctu mpbg yívq óhfz jéáñ xúüw k

(specifiche del link e wikipedia: Frequenza delle lettere )

Usando queste informazioni si può identificare se alcuni personaggi appaiono e abbattere rapidamente le scelte. Se ß , beh, è probabile che sia tedesco. Ci sono alcuni personaggi che appaiono solo in alcune lingue. Questo, tuttavia, non è infallibile dato che si potrebbe parlare di band heavy metal classiche che amano usare caratteri al di fuori del normale per quella lingua - Mötley Crüe (vedi Metal umlaut ) o uso di parole prese in prestito (alcune persone scrivono curriculum in inglese).

Questo è il punto in cui vengono utilizzati i passaggi multipli:

  • Convalida le lingue probabili tramite il set di caratteri
  • Confronta la frequenza delle lettere con le lingue
  • Confronta parole specifiche con un dizionario conosciuto per la lingua

Nel confrontare l'analisi della frequenza delle lettere, si dovrebbe mantenere sia un set accentato che non accentato per situazioni in cui qualcuno scrive la lingua con caratteri latini non accentati piuttosto che fare pieno uso del set di caratteri.

La combinazione di queste informazioni viene quindi inviata tramite processi statistici per identificare l'ipotesi appropriata della lingua (e sì, Sono completamente che sorvolo su questa sezione perché la mia matematica statistica è debole e andrebbe ben oltre le basi). Ulteriori informazioni su questo in Identificazione della lingua: approcci statistici - questo link su Wikipedia va ad un numero di articoli e librerie per tali .

    
risposta data 03.02.2014 - 17:13
fonte
0

Gli strumenti usano un mix di routine per determinare la lingua di una stringa di testo.

In alcuni casi l'esistenza di determinati caratteri specifici aumenta la probabilità di lingue specifiche: lettere con accenti e dieresi. In alcuni casi si tratta di parole specifiche come quelle di determinati articoli specifici della lingua: der, die, das in tedesco. In altri casi sono i tipi di caratteri utilizzati che identificano la famiglia linguistica: cinese, arabo ...

Sono disponibili numerose librerie open source e a pagamento. Si basano sull'ingestione di un grande corpus di documenti di esempio per aiutare con le probabilità. Alcuni ti consentono di aggiungere regole aggiuntive se hai casi specifici che causano problemi.

Più lunga è la stringa che si desidera identificare, migliori sono i risultati. Una stringa di una parola può adattarsi a più lingue. Un paragrafo otterrà risultati migliori. Ovviamente se il documento ha più lingue nelle diverse sezioni è possibile ottenere risultati imprevisti.

    
risposta data 03.02.2014 - 15:46
fonte
0

Un approccio semplice potrebbe essere l'uso di elenchi di parole (mappe hash) delle parole più comuni per ogni lingua che desideri supportare.

Quando analizzi il testo, prendi ogni parola e controlla se può essere trovata in uno di questi elenchi. La lista di parole con il maggior numero di hit è molto probabilmente quella della lingua in cui il testo è scritto. (Controlla tutti per ogni parola - alcune parole appaiono in più di una lingua, a volte significano qualcosa di completamente diverso).

Più i testi che vuoi analizzare sono più brevi, più lunghi saranno gli elenchi di parole per identificare in modo affidabile la lingua.

    
risposta data 03.02.2014 - 16:40
fonte
-1

In realtà, il modo più semplice è usare google / ms translate api, hanno fatto tutto il lavoro duro per te.

Ecco un servizio web che puoi utilizzare da Microsoft Translate:

link

    
risposta data 03.02.2014 - 17:37
fonte

Leggi altre domande sui tag