0

(これはHow to detect the language of a string? の複製ではありません)

言語/アルファベット固有の文字によって、特定の文字列 (単一の単語) のアルファベットを判別できる必要があります。たとえば、文字列に次のものが含まれているとします。

  • 「Ü」はドイツ語として認識されるべきであり、
  • アラビア語の「ش」、
  • ギリシャ語などの「Φ」

言語/アルファベット別にリストされたアルファベット固有の文字のリストを探しています。そのままでは、GoogleTranslate API または他の辞書ベースのソリューションを使用した単一の辞書にない単語は機能しません

(質問はプログラミング言語固有のものではありませんが、実際のコードは C# で記述されています)

4

1 に答える 1

3

各文字のユニコード名から始めることができます。例 (Python の場合):

>>> import unicodedata
>>> unicodedata.name(u'Φ')
'GREEK CAPITAL LETTER PHI'
>>> unicodedata.name(u'ش')
'ARABIC LETTER SHEEN'
>>> unicodedata.name(u'Ü')
'LATIN CAPITAL LETTER U WITH DIAERESIS'

Unicode はラテン文字を特定の言語固有のアルファベットに割り当てないため、ラテン文字を特殊なケースにする必要がある場合があります。それらのほとんどは、ラテン語ベースのアルファベットを使用するいくつかの言語で表示されますが、ドイツ語の場合にのみデータに Ü が含まれることが何らかの形で確信できる場合は、目的のためにその文字をドイツ語として識別することができます。心配するラテン文字は数十個しかありません。

同様に、多数の言語が UnicodeCYRILLIC文字を使用しているため、ほとんどの場合、それらの文字が存在しても言語がわからない. 一部は、特定の言語に属するものとして Unicode によって記述されます。http://www.unicode.org/charts/PDF/U0400.pdfCYRILLIC SMALL LETTER YIに「ウクライナ語」という注記があります。それらのメモが網羅的かどうか、つまり、その文字を使用する言語がウクライナ語だけかどうかはわかりません。そして、その特徴を持たないウクライナ語の単語がたくさんあることは確かです. 基本的に、ウクライナ固有の文字の有無だけでは、ウクライナ語とロシア語を区別することはできません。

同じことが Unicode の他のアルファベットにも当てはまると思います。本当に運が良ければ、各文字に関するそのようなメモを含む Unicode データベースを見つけることができるので、特定の言語について言及するためにそれをマイニングできます。

于 2012-11-08T12:34:03.713 に答える