指定したテキストの言語を検出します。
このパッケージは、与えられたテキストの言語の 3-gram の頻度順を調べ、既知の言語の 3-gram 頻度の表と対応させることで言語を検出します。
このパッケージは Cavnar & Trenkle (1994): "N-Gram-Based Text Categorization" で提案された技術を実装したものです。
まずはサポートされる言語の一覧を取得してみましょう。 Text_LanguageDetect オブジェクトの getLanguages() をコールします。 このメソッドは、言語を表す文字列の配列を返します。例えば array('albanian', 'arabic', 'azeri') のようになります。
実際の言語をそのテキストから取得するには Text_LanguageDetect オブジェクトの detect() メソッドを使用します。 最初のパラメータにはテキストを指定します。そしてオプションの二番目のパラメータ $limit では、結果を最大で何件まで返すのかを指定します。 このメソッドの返す配列は、ソートされた言語名をキーとし、 そのスコアを値に持つものとなります。 言語が検出できなかった場合は、空の配列を返します。
結果を一件だけ取得するには detectSimple() を使用します。これは、言語名を文字列で返します。 検出できなかった場合は null を返します。
注意 言語を正確に検出するには、ある程度の長さのテキストを指定する必要があります。
|
上の例の結果は、次のようになります。
サポートしている言語:
albanian, arabic, azeri, bengali, bulgarian, cebuano, croatian,
czech, danish, dutch, english, estonian, farsi, finnish, french,
german, hausa, hawaiian, hindi, hungarian, icelandic, indonesian,
italian, kazakh, kyrgyz, latin, latvian, lithuanian, macedonian,
mongolian, nepali, norwegian, pashto, pidgin, polish, portuguese,
romanian, russian, serbian, slovak, slovene, somali, spanish,
swahili, swedish, tagalog, turkish, ukrainian, urdu, uzbek,
vietnamese, welsh
Array
(
[german] => 0.407037037037
[dutch] => 0.288065843621
[english] => 0.283333333333
[danish] => 0.234526748971
) |