أدوات اللغة الصربية هي مكتبة PHP للتعامل مع النص المكتوب باللغة الصربية. يميز:
تتطلب هذه المكتبة 7.4 PHP أو أكثر مع امتدادات SQLITE3 و INTL و MBSTRING.
يمكنك تثبيت الحزمة عبر الملحن:
composer require turanjanin/serbian-language-toolsمن أجل استخدام المكتبة ، تحتاج إلى تمييز السلسلة. الرمز المميز هو عملية تقسيم السلسلة إلى سلسلة من الأحرف ذات الصلة. يمكن لهذه المكتبة التعرف على الرموز التالية: Word و WhiteSpace و URI (والتي تشمل عناوين URL و علامات التجزئة والتمثيلات) ، الوظيفية ، HTML والرضا.
يمكن تحقيق الرمز المميز عن طريق إنشاء مثيل جديد لفئة Text باستخدام المُنشئ المسماة:
use Turanjanin SerbianLanguageTools Text ;
$ text = Text:: fromString ( ' Zdravo svete, ovo je primer teksta! ' ); سيحتوي الكائن النص على مجموعة من الرموز المختلفة التي يمكن معالجتها. يمكنك استخدام هذا الكائن كأي صفيف PHP آخر لأنه ينفذ واجهة ArrayAccess .
echo count ( $ text ) . "n" ; // 13
echo get_class ( $ text [ 1 ]). "n" ; // TuranjaninSerbianLanguageToolsTokensWhitespace
echo $ text [ 9 ] . "n" ; // primerتتضمن الأبجدية اللاتينية الصربية بعض الشخصيات المحددة التي لم يتم العثور عليها في جدول ترميز ASCII. تتميز هذه الشخصيات بتشكيلات - č ، ć ، š ، ž ، dž ، đ - والتي يتم حذفها غالبًا في التواصل اليومي (وسائل التواصل الاجتماعي ، ورسائل البريد الإلكتروني والرسائل النصية القصيرة) ، ويرجع ذلك أساسًا إلى الاستخدام الواسع النطاق لتخطيطات لوحة المفاتيح الإنجليزية.
يمكن فهم هذه الأبجدية اللاتينية المتدهورة بسهولة من قبل القراء البشريين ولكنها تشكل تحديًا كبيرًا لمحركات البحث ومعالجة اللغة الطبيعية. لذلك ، تتميز هذه المكتبة بخوارزمية تتيح استعادة تلقائي لنص ASCII باستخدام قاموس من الكلمات الصربية والعبارات لعدم الغموض في السياق.
تقوم الخوارزمية بفحص جميع الرموز Word وتبحث عن مرشحين ترميم - الكلمات ذات أحرف S أو C أو Z أو DJ. بعد ذلك ، يتم تطبيق الخطوتين التاليتين:
يتم البحث عن العبارات الأكثر شيوعًا داخل النص ، وإذا وجدت ، يتم استبدال الكلمات بمكافئاتها في التشكيل. تأخذ هذه الخطوة سياق الكلمات في الاعتبار مما يسمح لنا بإعطاء ميزة لبعض الاختلافات الأقل استخدامًا. على سبيل المثال ، لن يتم استبدال sto hiljada بـ što hiljada ، على الرغم من أن النموذج što (لماذا) لديه تردد أكبر بكثير مقارنة بـ Word sto (مائة) .
يتم البحث عن كل مرشح ترميم في القاموس ، وإذا كانت هناك اختلافات معروفة ، يتم استبدال الرمز المميز بكلمات RestoredWord (إذا كان هناك تباين واحد محتمل فقط) أو MultipleRestoredWord (إذا كان هناك المزيد من الاختلافات الممكنة). في حالة أكثر من تباين واحد ، سيتم وضع علامة على أعلى تردد على أنه مفضل.
يمكن تنفيذ ترميم الرسوم من خلال استدعاء الفصل القابل للتذكير:
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. يتم تخزين القاموس اللازم لهذه الخوارزمية في قاعدة بيانات SQLite مخصصة مخصصة تم تضمينها في هذه المكتبة. يمكنك تمديد قاعدة البيانات هذه أو استخدام حل تخزين مختلف من خلال توفير تنفيذ مخصص لواجهة TuranjaninSerbianLanguageToolsDictionaryDictionary .
تدعم المكتبة ترجمة النص بين الحروف الهجائية السيريلية واللاتينية و ASCII. يمكن تنفيذ الترجمة عن طريق استدعاء الفصل المناسب القابلة للاستدعاء:
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 tekstإذا كنت بحاجة فقط إلى ترجمة بين الحروف الهجائية اللاتينية والسيريلية ، فقم بإلقاء نظرة على المكتبة الأكثر بساطة - Turanjanin/Serbian -transliterator.
يمكن استخدام المكتبة لاكتشاف ما إذا كان النص مكتوبًا بالأبجدية السيريلية الصربية أو اللاتينية:
use Turanjanin SerbianLanguageTools Text ;
Text:: fromString ( ' Ovo je latinica ' )-> isLatin (); // true
Text:: fromString ( ' Ovo je latinica ' )-> isCyrillic (); // false ترخيص معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.