เครื่องมือภาษาเซอร์เบียเป็นห้องสมุด PHP สำหรับการจัดการกับข้อความที่เขียนด้วยภาษาเซอร์เบีย มันมีคุณสมบัติ:
ห้องสมุดนี้ต้องการ PHP 7.4 หรือมากกว่าด้วยส่วนขยาย SQLITE3, INTL และ MBSTRING
คุณสามารถติดตั้งแพ็คเกจผ่านนักแต่งเพลง:
composer require turanjanin/serbian-language-toolsในการใช้ไลบรารีคุณต้องใช้สตริง Tokenization เป็นกระบวนการแยกสตริงออกเป็นชุดของอักขระที่เกี่ยวข้อง ห้องสมุดนี้สามารถรับรู้โทเค็นต่อไปนี้: Word, Whitespace, URI (ซึ่งรวมถึง URL, hashtags และ at-mements), การทำงานร่วมกัน, HTML และ Emoticon
Tokenizing สามารถทำได้โดยการสร้างอินสแตนซ์ใหม่ของคลาส 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 ตัวละครเหล่านี้มีคุณสมบัติ Diarcritics - č, ć, Š, ž, dž, đ - ซึ่งมักจะถูกละไว้ในการสื่อสารในชีวิตประจำวัน (โซเชียลมีเดียอีเมลและ SMS) ส่วนใหญ่เกิดจากการใช้งานเค้าโครงแป้นพิมพ์ภาษาอังกฤษอย่างกว้างขวาง
ตัวอักษรละตินที่เสื่อมโทรมนี้สามารถเข้าใจได้ง่ายโดยผู้อ่านของมนุษย์ แต่มันทำให้เกิดความท้าทายที่สำคัญสำหรับเครื่องมือค้นหาและการประมวลผลภาษาธรรมชาติ ดังนั้นห้องสมุดนี้มีอัลกอริทึมที่อนุญาตให้คืนค่าข้อความ ASCII โดยอัตโนมัติโดยใช้พจนานุกรมคำและวลีของเซอร์เบีย
อัลกอริทึมตรวจสอบโทเค็น Word ทั้งหมดและมองหาผู้สมัครการฟื้นฟู - คำที่มีอักขระ S, C, Z หรือ DJ หลังจากนั้นมีการใช้สองขั้นตอนต่อไปนี้:
วลีที่พบบ่อยที่สุดคือการค้นหาภายในข้อความและหากพบคำพูดจะถูกแทนที่ด้วยความเท่าเทียมกันของพวกเขา ขั้นตอนนี้จะนำบริบทคำเข้ามาพิจารณาซึ่งช่วยให้เราสามารถให้ประโยชน์กับการเปลี่ยนแปลงที่ใช้น้อยกว่า ตัวอย่างเช่น sto hiljada จะไม่ถูกแทนที่ด้วย što hiljada แม้ว่ารูปแบบ što (ทำไม) มีความถี่มากกว่าเมื่อเทียบกับ Word sto (ร้อย)
ผู้สมัครการฟื้นฟูทุกคนจะได้รับการค้นหาในพจนานุกรมและหากมีการเปลี่ยนแปลงที่รู้จักโทเค็นจะถูกแทนที่ด้วย RestoredWord (หากมีการเปลี่ยนแปลงที่เป็นไปได้เพียงอย่างเดียว) หรือ MultipleRestoredWord (หากมีรูปแบบที่เป็นไปได้มากขึ้น) ในกรณีที่มีการเปลี่ยนแปลงมากกว่าหนึ่งรูปแบบที่มีความถี่สูงสุดจะถูกทำเครื่องหมายตามที่ต้องการ
การฟื้นฟู Diacritic สามารถทำได้โดยเรียกคลาสที่เรียกว่า:
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 Interface
ห้องสมุดรองรับการถอดความของข้อความระหว่างตัวอักษร Cyrillic, Latin และ 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
ห้องสมุดสามารถใช้ตรวจสอบได้ว่าข้อความถูกเขียนในตัวอักษร Cyrillic หรือละตินของเซอร์เบีย:
use Turanjanin SerbianLanguageTools Text ;
Text:: fromString ( ' Ovo je latinica ' )-> isLatin (); // true
Text:: fromString ( ' Ovo je latinica ' )-> isCyrillic (); // false ใบอนุญาต MIT (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม