Detecção de linguagem natural para ferrugem com foco na simplicidade e desempenho.
Experimente a demonstração online.
Exemplo:
use whatlang :: { detect , Lang , Script } ;
fn main ( ) {
let text = "Ĉu vi ne volas eklerni Esperanton? Bonvolu! Estas unu de la plej bonaj aferoj!" ;
let info = detect ( text ) . unwrap ( ) ;
assert_eq ! ( info.lang ( ) , Lang :: Epo ) ;
assert_eq ! ( info.script ( ) , Script :: Latin ) ;
assert_eq ! ( info.confidence ( ) , 1.0 ) ;
assert ! ( info.is_reliable ( ) ) ;
}Para mais detalhes (por exemplo, como a lista negra de alguns idiomas), verifique a documentação.
O WhatLang é usado nos seguintes grandes projetos como dependência direta ou indireta para o reconhecimento de idiomas. Você estará em uma ótima empresa usando o Whatlang:
| Recurso | Descrição |
|---|---|
enum-map | Lang e Script implementam traço de Enum do enum-mapa |
arbitrary | Suporte arbitrário |
serde | Implementa Serialize e Deserialize para Lang e Script |
dev | Ativa o módulo whatlang::dev , que fornece algumas APIs internas.Existe para fins de perfil e usuários normais são desencorajados a confiar nessa API. |
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 '.
is_reliable é calculado?É 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.
make bench - Execute benchmarks de desempenhomake doc - Gere e abra o documentomake test - Executar testesmake watch - Assista a alterações e execute testes | WhatLang | CLD2 | CLD3 | |
|---|---|---|---|
| Linguagem de implementação | Ferrugem | C ++ | C ++ |
| Idiomas | 68 | 83 | 107 |
| Algoritmo | TriGramas | QuadGrams | Rede Neural |
| Codificação suportada | UTF-8 | UTF-8 | ? |
| Suporte HTML | não | sim | ? |
Você pode apoiar o projeto doando perto do Tokens.
Nosso endereço de carteira próximo é whatlang.near
WhatLang é um trabalho derivado de Franc (JavaScript, MIT) de Titus Wormer.
MIT © Sergey Potapov