Python
 Computer >> コンピューター >  >> プログラミング >> Python

TensorFlowにおけるテキストデータのセグメンテーションとは?Unicode処理の基本を解説

テキストのセグメンテーション(分割)とは

セグメンテーション(Segmentation)とは、テキストを単語のような単位に分割する処理のことです。英語など多くの言語では、スペース文字を使って単語を区切りますが、中国語や日本語のようにスペースを使用しない言語も存在します。また、ドイツ語のような言語には長い複合語が含まれており、意味を分析するためには適切に分割する必要があります。

自然言語を扱うモデルは、異なる文字セットを持つさまざまな言語を処理しなければなりません。このとき標準的なエンコーディングシステムとして広く使われているのがUnicodeです。Unicodeでは、ほぼすべての言語の文字を表現でき、各文字は0から0x10FFFFまでの一意な整数コードポイントによってエンコードされます。Unicode文字列とは、0個以上のコード値のシーケンスとして定義されます。

PythonでのUnicode文字列の扱い方

ここでは、PythonでUnicode文字列をどのように表現し、Unicodeに対応した操作でそれらを加工していくかを見ていきます。まず、標準的な文字列操作に相当するUnicode操作を使い、スクリプト(用字系)の検出に基づいてUnicode文字列をトークンに分割します。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上でPythonコードを実行できる環境で、設定不要であり、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。

実行コード例

print("Below is the sentence that is processed")
sentence_texts = [u'Hello, there.', u'世界こんにちは']
print("The code point values for characters in the sentence")
sentence_char_codepoint = tf.strings.unicode_decode(sentence_texts, 'UTF-8')
print(sentence_char_codepoint)
print("The unicode script values for characters in the sentence")
sentence_char_script = tf.strings.unicode_script(sentence_char_codepoint)
print(sentence_char_script)

コード引用元:https://www.tensorflow.org/tutorials/load_data/unicode

出力結果

Below is the sentence that is processed
The code point values for characters in the sentence

The unicode script values for characters in the sentence
<tf.RaggedTensor [[25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 0], [17, 17, 20, 20, 20, 20, 20]]>

コードの解説

  • セグメンテーションとは、テキストを単語のような単位に分割するタスクです。
  • 通常はスペース文字で単語を区切りますが、中国語や日本語のようにスペースを使わない言語の場合に特に有効です。
  • ドイツ語のような長い複合語を持つ言語では、意味を分析するために分割が必要になります。
  • Web上のテキストでは、「NY株価」のように複数の言語やスクリプトが混在することが一般的です。
  • 機械学習モデルを使わなくても、スクリプトの変化を単語境界の近似として利用することで、大まかなセグメンテーションが可能です。
  • これは「NY株価」のような文字列に対して機能します。また、スペースを使うほとんどの言語でも動作します。これは、各種スクリプトのスペース文字がUSCRIPT_COMMONという特殊なスクリプトコードに分類され、実際のテキストのスクリプトとは異なるためです。
  • 上記のコードでは、まず各文のすべての文字に対するコードポイントが生成されます。
  • 次に、各文のすべての文字に対するUnicodeスクリプトが生成されます。
  1. ハッカーはハッキングされたウェブサイトで何をするのか?攻撃後の手口を徹底解説

    2017年は、サイバー犯罪の歴史においても特筆すべき年となりました。CMS(コンテンツ管理システム)やECポータル、金融機関のウェブサイト改ざんに至るまで、サイバー犯罪は年々増加の一途をたどっています。2017年には、約1億4,300万人分の個人情報が流出した「Equifax情報漏洩事件」、同年最悪とされたランサムウェア攻撃「WannaCry」、その影響を広げた「Petya」攻撃、そして数十億アカウント規模の被害が出た「Yahoo!情報漏洩事件」など、衝撃的なサイバー攻撃が相次ぎました。 ウェブサイトはどのようにハッキングされるのか? Googleによると、ハッキングされたウェブサイトの数は3

  2. ビッグデータの落とし穴とは?知っておきたい3つの主要な問題点

    ビッグデータは、機械学習とアルゴリズムを中核とし、高い需要と優れた機能性により、現在まさに絶頂期を迎えています。ビッグデータ分析ソリューションの導入を目指す企業が増え、この分野の専門人材への需要も高まり続けています。予測モデルや統計分析に基づくビジネスインテリジェンスの獲得を競う企業が多いなか、ビッグデータの文化は世界を席巻し、一つの標準として確立されつつあるのです。 データが指数関数的に増加するにつれ、ビッグデータ、IoT、クラウドコンピューティングといった最先端テクノロジーへの需要も急拡大しています。専門家によれば、これらの技術は近い将来、あらゆるビジネスに不可欠な存在になるとされています