Alat Bahasa Serbia adalah perpustakaan PHP untuk berurusan dengan teks yang ditulis dalam bahasa Serbia. Fiturnya:
Perpustakaan ini membutuhkan PHP 7.4 atau lebih besar dengan ekstensi SQLITE3, INTL dan MBSTRING.
Anda dapat menginstal paket melalui komposer:
composer require turanjanin/serbian-language-toolsUntuk menggunakan perpustakaan, Anda perlu tokenize string. Tokenisasi adalah proses pemisahan string menjadi serangkaian karakter terkait. Perpustakaan ini dapat mengenali token berikut: Word, Whitespace, URI (yang mencakup URL, tagar dan AT-ATIONS), Interpunction, HTML dan Emoticon.
Tokenizing dapat dicapai dengan membuat instance baru kelas Text menggunakan konstruktor bernama:
use Turanjanin SerbianLanguageTools Text ;
$ text = Text:: fromString ( ' Zdravo svete, ovo je primer teksta! ' ); Objek teks sekarang akan berisi berbagai token yang dapat diproses. Anda dapat menggunakan objek ini sebagai array PHP lainnya karena mengimplementasikan antarmuka ArrayAccess .
echo count ( $ text ) . "n" ; // 13
echo get_class ( $ text [ 1 ]). "n" ; // TuranjaninSerbianLanguageToolsTokensWhitespace
echo $ text [ 9 ] . "n" ; // primerAlfabet Latin Serbia mencakup beberapa karakter spesifik yang tidak ditemukan di tabel penyandian ASCII. Karakter -karakter ini menampilkan diakritik - č, ć, Š, Ž, DŽ, đ - yang sering dihilangkan dalam komunikasi sehari -hari (media sosial, email dan SMS), terutama karena penggunaan tata letak keyboard bahasa Inggris yang tersebar luas.
Alfabet Latin yang terdegradasi ini dapat dengan mudah dipahami oleh pembaca manusia tetapi merupakan tantangan yang signifikan untuk mesin pencari dan pemrosesan bahasa alami. Oleh karena itu, perpustakaan ini menampilkan algoritma yang memungkinkan pemulihan otomatis teks ASCII dengan menggunakan kamus kata dan frasa Serbia untuk disambiguasi konteks.
Algoritma memeriksa semua token Word dan mencari kandidat restorasi - kata -kata dengan karakter S, C, Z atau DJ. Setelah itu, dua langkah berikut diterapkan:
Frasa yang paling umum dicari di dalam teks dan, jika ditemukan, kata -kata diganti dengan padanan diakritik mereka. Langkah ini mempertimbangkan konteks kata yang memungkinkan kita untuk memberikan keuntungan pada beberapa variasi yang kurang digunakan. Misalnya, sto hiljada tidak akan diganti dengan što hiljada , meskipun bentuk što (mengapa) memiliki frekuensi yang jauh lebih besar dibandingkan dengan kata sto (seratus) .
Setiap kandidat restorasi terlihat di kamus dan, jika ada variasi yang diketahui, token diganti dengan RestoredWord (jika hanya ada satu variasi yang mungkin) atau MultipleRestoredWord (jika ada variasi yang lebih mungkin). Dalam kasus lebih dari satu variasi, yang dengan frekuensi tertinggi akan ditandai seperti yang disukai.
Restorasi diakritik dapat dilakukan dengan memanggil kelas yang dapat dibangun:
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. Kamus yang diperlukan untuk algoritma ini disimpan dalam database SQLite yang dibuat khusus yang disertakan dengan perpustakaan ini. Anda dapat memperluas database ini atau menggunakan solusi penyimpanan yang berbeda dengan memberikan implementasi khusus dari TuranjaninSerbianLanguageToolsDictionaryDictionary Interface.
Perpustakaan mendukung transliterasi teks antara huruf Cyrillic, Latin dan ASCII. Transliterasi dapat dilakukan dengan memanggil kelas yang dapat dijalankan yang sesuai:
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 tekstJika Anda hanya membutuhkan transliterasi antara huruf Latin dan Cyrillic, lihatlah perpustakaan yang lebih sederhana - Turanjanin/Serbia -Transliterator.
Perpustakaan dapat digunakan untuk mendeteksi jika teks ditulis dalam alfabet Serbia Cyrillic atau Latin:
use Turanjanin SerbianLanguageTools Text ;
Text:: fromString ( ' Ovo je latinica ' )-> isLatin (); // true
Text:: fromString ( ' Ovo je latinica ' )-> isCyrillic (); // false Lisensi MIT (MIT). Silakan lihat file lisensi untuk informasi lebih lanjut.