As ferramentas de idiomas sérvios são uma biblioteca PHP para lidar com o texto escrito no idioma sérvio. Apresenta:
Esta biblioteca requer Php 7.4 ou maior com extensões SQLITE3, INTL e MBSTRING.
Você pode instalar o pacote via compositor:
composer require turanjanin/serbian-language-toolsPara usar a biblioteca, você precisa tokenizar a string. A tokenização é um processo de dividir a string em uma série de caracteres relacionados. Esta biblioteca pode reconhecer os seguintes tokens: Word, Whitespace, URI (que inclui URLs, hashtags e mencionões), interpunção, HTML e emoticon.
Tokenizing pode ser alcançado criando uma nova instância da classe Text usando o construtor nomeado:
use Turanjanin SerbianLanguageTools Text ;
$ text = Text:: fromString ( ' Zdravo svete, ovo je primer teksta! ' ); O objeto de texto agora conterá uma matriz de vários tokens que podem ser processados. Você pode usar esse objeto como qualquer outra matriz PHP, pois ele implementa a interface ArrayAccess .
echo count ( $ text ) . "n" ; // 13
echo get_class ( $ text [ 1 ]). "n" ; // TuranjaninSerbianLanguageToolsTokensWhitespace
echo $ text [ 9 ] . "n" ; // primerO alfabeto latino sérvio inclui alguns caracteres específicos que não são encontrados na tabela de codificação ASCII. Esses personagens apresentam diacríticos - Č, ć, Š, Ž, Dž, đ - que geralmente são omitidos na comunicação cotidiana (mídia social, e -mails e SMS), principalmente devido ao uso generalizado dos layouts de teclado em inglês.
Este alfabeto latino degradado pode ser facilmente entendido pelos leitores humanos, mas apresenta um desafio significativo para os mecanismos de pesquisa e o processamento de linguagem natural. Portanto, esta biblioteca apresenta um algoritmo que permite a restauração automatizada do texto ASCII usando um dicionário de palavras e frases sérvias para a desambiguação do contexto.
O algoritmo inspeciona todos os tokens Word e procura candidatos a restauração - as palavras com caracteres S, C, Z ou DJ. Depois disso, as duas etapas seguintes são aplicadas:
As frases mais comuns são pesquisadas dentro do texto e, se encontradas, as palavras são substituídas por seus equivalentes diacríticos. Esta etapa leva em consideração o contexto do Word, o que nos permite dar vantagem a algumas variações menos usadas. Por exemplo, sto hiljada não será substituído por što hiljada , mesmo que a forma što (por que) tenha uma frequência muito maior em comparação com a palavra sto (cem) .
Todo candidato a restauração é procurado no dicionário e, se houver variações conhecidas, o token será substituído pelo RestoredWord (se houver apenas uma variação possível) ou MultipleRestoredWord (se houver mais variações possíveis). No caso de mais de uma variação, a com a maior frequência será marcada como preferida.
A restauração diacrítica pode ser realizada chamando a classe Invocable:
use Turanjanin SerbianLanguageTools Text ;
use Turanjanin SerbianLanguageTools Transformers DiacriticRestorer ;
$ text = Text:: fromString ( ' Cetiri cavke cuceci dzangrizavo cijucu u zeleznickoj skoli. ' );
echo ( new DiacriticRestorer )( $ text ); // Četiri čavke čučeći džangrizavo cijuču u železničkoj školi. O dicionário necessário para esse algoritmo é armazenado no banco de dados SQLite feito sob medida, incluído nesta biblioteca. Você pode estender esse banco de dados ou usar uma solução de armazenamento diferente, fornecendo implementação personalizada de TuranjaninSerbianLanguageToolsDictionaryDictionary Interface.
A biblioteca suporta a transliteração do texto entre alfabetos cirílico, latino e ascii. A transliteração pode ser realizada chamando a classe invasor apropriada:
use Turanjanin SerbianLanguageTools Text ;
use Turanjanin SerbianLanguageTools Transformers ToAsciiLatin ;
use Turanjanin SerbianLanguageTools Transformers ToCyrillic ;
use Turanjanin SerbianLanguageTools Transformers ToLatin ;
$ cyrillic = Text:: fromString ( ' Ово је ћирилични текст ' );
$ latin = Text:: fromString ( ' Primer latiničnog teksta ' );
echo ( new ToLatin )( $ cyrillic ); // Ovo je ćirilični tekst
echo ( new ToCyrillic )( $ latin ); // Пример латиничног текста
echo ( new ToAsciiLatin )( $ cyrillic ); // Ovo je cirilicni tekstSe você precisar apenas de transliteração entre os alfabetos latinos e cirílicos, dê uma olhada na biblioteca mais simples - Turanjanin/Sérvio -Transliterator.
A biblioteca pode ser usada para detectar se o texto é escrito no alfabeto cirílico ou latino sérvio:
use Turanjanin SerbianLanguageTools Text ;
Text:: fromString ( ' Ovo je latinica ' )-> isLatin (); // true
Text:: fromString ( ' Ovo je latinica ' )-> isCyrillic (); // false A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.