Les outils de langue serbe sont une bibliothèque PHP pour traiter le texte écrit en langue serbe. Il s'agit de fonctionnalités:
Cette bibliothèque nécessite PHP 7,4 ou plus avec les extensions SQLite3, INTL et MBSTRING.
Vous pouvez installer le package via le compositeur:
composer require turanjanin/serbian-language-toolsPour utiliser la bibliothèque, vous devez tokensize la chaîne. La tokenisation est un processus de division de la chaîne en une série de caractères connexes. Cette bibliothèque peut reconnaître les jetons suivants: mot, espace blanc, URI (qui comprend des URL, des hashtags et des principales), l'interponction, le HTML et l'émoticône.
Le tokenising peut être réalisé en créant une nouvelle instance de classe Text à l'aide du constructeur nommé:
use Turanjanin SerbianLanguageTools Text ;
$ text = Text:: fromString ( ' Zdravo svete, ovo je primer teksta! ' ); L'objet texte contiendra désormais un tableau de différents jetons qui peuvent être traités. Vous pouvez utiliser cet objet comme n'importe quel autre tableau PHP car il implémente l'interface ArrayAccess .
echo count ( $ text ) . "n" ; // 13
echo get_class ( $ text [ 1 ]). "n" ; // TuranjaninSerbianLanguageToolsTokensWhitespace
echo $ text [ 9 ] . "n" ; // primerL'alphabet latin serbe comprend quelques caractères spécifiques que l'on ne trouve pas dans la table de codage ASCII. Ces personnages présentent des diacritiques - č, ć, Š, Ž, Dž, đ - qui sont souvent omis dans la communication quotidienne (médias sociaux, e-mails et SMS), principalement en raison de l'utilisation généralisée des dispositions de clavier anglais.
Cet alphabet latin dégradé peut être facilement compris par les lecteurs humains, mais il pose un défi important pour les moteurs de recherche et le traitement du langage naturel. Par conséquent, cette bibliothèque dispose d'un algorithme qui permet la restauration automatisée du texte ASCII en utilisant un dictionnaire de mots serbes et de phrases pour la désambiguïsation du contexte.
L'algorithme inspecte tous les jetons Word et recherche des candidats de restauration - les mots avec des caractères S, C, Z ou DJ. Après cela, les deux étapes suivantes sont appliquées:
Les phrases les plus courantes sont recherchées à l'intérieur du texte et, si elles sont trouvées, les mots sont remplacés par leurs équivalents diacritiques. Cette étape prend en compte le contexte des mots qui nous permet de donner un avantage à certaines variations moins utilisées. Par exemple, sto hiljada ne sera pas remplacé par što hiljada , même si la forme što (pourquoi) a une fréquence beaucoup plus grande par rapport au mot sto (cent) .
Chaque candidat de la restauration est recherché dans le dictionnaire et, s'il existe des variations connues, le jeton est remplacé par RestoredWord (s'il n'y a qu'une seule variation possible) ou MultipleRestoredWord (s'il y a plus de variations possibles). En cas de plus d'une variation, celui avec la fréquence la plus élevée sera marqué comme préféré.
La restauration diacritique peut être effectuée en appelant la classe invoquable:
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. Le dictionnaire nécessaire pour cet algorithme est stocké dans la base de données SQLite sur mesure qui est inclus dans cette bibliothèque. Vous pouvez étendre cette base de données ou utiliser une solution de stockage différente en fournissant une implémentation personnalisée de l'interface de TuranjaninSerbianLanguageToolsDictionaryDictionary .
La bibliothèque prend en charge la translittération du texte entre les alphabets cyrilliques, latins et ASCII. La translittération peut être effectuée en appelant une classe invoquable appropriée:
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 tekstSi vous n'avez besoin que de la translittération entre les alphabets latins et cyrilliques, jetez un œil à la bibliothèque la plus simple - Turanjanin / Transliterateur serbe.
La bibliothèque peut être utilisée pour détecter si le texte est écrit en alphabet cyrillique ou latin serbe:
use Turanjanin SerbianLanguageTools Text ;
Text:: fromString ( ' Ovo je latinica ' )-> isLatin (); // true
Text:: fromString ( ' Ovo je latinica ' )-> isCyrillic (); // false La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.