セルビア語のツールは、セルビア語で書かれたテキストを扱うためのPHPライブラリです。特徴:
このライブラリには、SQLite3、INTL、およびMBSTRING拡張機能を備えたPHP 7.4以上が必要です。
Composer経由でパッケージをインストールできます。
composer require turanjanin/serbian-language-toolsライブラリを使用するには、文字列をトークン化する必要があります。トークン化は、文字列を関連する一連の文字に分割するプロセスです。このライブラリは、次のトークンを認識できます:Word、Whitespace、URI(URL、ハッシュタグ、およびメントを含む)、補間、HTML、およびEmoticon。
指名されたコンストラクターを使用して、 Textクラスの新しいインスタンスを作成することで、トークン化を実現できます。
use Turanjanin SerbianLanguageTools Text ;
$ text = Text:: fromString ( ' Zdravo svete, ovo je primer teksta! ' );テキストオブジェクトには、処理できるさまざまなトークンの配列が含まれるようになりました。このオブジェクトは、 ArrayAccessインターフェイスを実装するため、他のPHPアレイとして使用できます。
echo count ( $ text ) . "n" ; // 13
echo get_class ( $ text [ 1 ]). "n" ; // TuranjaninSerbianLanguageToolsTokensWhitespace
echo $ text [ 9 ] . "n" ; // primerセルビアのラテンアルファベットには、ASCIIエンコーディングテーブルには見られない特定の文字がいくつか含まれています。これらのキャラクターは、主に英語のキーボードレイアウトの広範な使用により、日常のコミュニケーション(ソーシャルメディア、電子メール、SMS)でしばしば省略されるDiaCritics -č、š、š、∗、dž、性を備えています。
この劣化したラテン語のアルファベットは、人間の読者によって簡単に理解できますが、検索エンジンと自然言語処理に大きな課題をもたらします。したがって、このライブラリは、コンテキストの乱用のためにセルビア語の単語とフレーズの辞書とフレーズの辞書を使用してASCIIテキストの自動回復を可能にするアルゴリズムを備えています。
アルゴリズムは、すべてのWordトークンを検査し、修復候補であるS、C、Z、またはDJ文字の単語を探します。その後、次の2つの手順が適用されます。
最も一般的なフレーズは、テキスト内で検索され、見つかった場合、単語はその異なる同等物に置き換えられます。このステップでは、単語のコンテキストを考慮して、使用されていないバリエーションを有利にすることができます。たとえば、 sto hiljada 、フォームšto (なぜ)がWord sto (100)と比較してはるかに大きな頻度を持っているにもかかわらず、 što hiljadaに置き換えられません。
すべての修復候補は辞書で調べられ、既知のバリエーションがある場合、トークンはRestoredWord (可能なバリエーションが1つしかない場合)またはMultipleRestoredWordワード(より多くのバリエーションがある場合)に置き換えられます。複数のバリエーションがある場合、周波数が最も高いバリエーションが優先されるものとしてマークされます。
Diacritic Restorationは、Invokableクラスを呼び出すことで実行できます。
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のアルファベット間のテキストの音訳をサポートしています。音訳は、適切なInvokableクラスを呼び出すことで実行できます。
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ライセンス(MIT)。詳細については、ライセンスファイルをご覧ください。