Detecção de linguagem natural para GO.
Instalação:
go get -u github.com/abadojack/whatlanggoExemplo de uso simples:
package main
import (
"fmt"
"github.com/abadojack/whatlanggo"
)
func main () {
info := whatlanggo . Detect ( "Foje funkcias kaj foje ne funkcias" )
fmt . Println ( "Language:" , info . Lang . String (), " Script:" , whatlanggo . Scripts [ info . Script ], " Confidence: " , info . Confidence )
} package main
import (
"fmt"
"github.com/abadojack/whatlanggo"
)
func main () {
//Blacklist
options := whatlanggo. Options {
Blacklist : map [whatlanggo. Lang ] bool {
whatlanggo . Ydd : true ,
},
}
info := whatlanggo . DetectWithOptions ( "האקדמיה ללשון העברית" , options )
fmt . Println ( "Language:" , info . Lang . String (), "Script:" , whatlanggo . Scripts [ info . Script ])
//Whitelist
options1 := whatlanggo. Options {
Whitelist : map [whatlanggo. Lang ] bool {
whatlanggo . Epo : true ,
whatlanggo . Ukr : true ,
},
}
info = whatlanggo . DetectWithOptions ( "Mi ne scias" , options1 )
fmt . Println ( "Language:" , info . Lang . String (), " Script:" , whatlanggo . Scripts [ info . Script ])
}Para mais detalhes, verifique a documentação.
Vá 1,8 ou superior
O algoritmo é baseado nos modelos de idiomas do TriGram, que é um caso específico de n-gramas. Para entender a idéia, verifique o Whitepaper Cavnar e Trenkle '94: categorização de texto baseada em n-gramas '.
É baseado nos seguintes fatores:
rate na base de código.Portanto, pode ser apresentado como espaço em 2D com funções limiares, que o divide em áreas "confiáveis" e "não confiáveis". Esta função é uma hipérbole e parece a seguinte:
Para mais detalhes, consulte um artigo do blog Introdução à biblioteca Rust Whatlang e algoritmos de identificação de idiomas naturais.
Mit
Whatlanggo é um derivado de Franc (JavaScript, MIT) de Titus Wormer.
Graças a Greyblake (Potapov Sergey) por criar o WhatLang-Rs de onde eu consegui a ideia e os algoritmos.