C# の文字列トークナイザー

Muhammad Maisam Abbas 2024年2月16日
C# の文字列トークナイザー

このチュートリアルでは、C# で文字列を複数のサブ文字列にトークン化する方法について説明します。

C# で String.Split() 関数を使用する文字列トークナイザー

自然言語処理では、文字列トークン化は、文を文に存在するすべての個々の単語に分割する方法です。これらの個々の単語はトークンと呼ばれます。

同様の目的で、Java に StringTokenizer クラスがあります。C# では、StringTokenizer クラスを直接実装していませんが、C# で使用可能な String.Split() 関数を使用して同様の結果を得ることができます。

String.Split() 関数は、特定の文字列を、区切り文字または区切り文字に基づいてサブ文字列の配列に分割できます。この関数は、区切り文字または区切り文字の正規式を受け取り、サブ文字列の配列を返します。

特定の文字列をトークン化するために、区切り文字または区切り文字として空白を使用して、文字列をサブ文字列に分割できます。

次のコードスニペットは、String.Split() 関数を使用して C# で文字列をトークン化する方法を示しています。

string inputString = "This is some input String";
string[] tokens = inputString.Split(' ');
foreach (string token in tokens) {
  Console.WriteLine(token);
}

出力:

This
is
some
input
String

出力には、C# の String.Split() メソッドを使用して個々の単語に分割された元の文字列これは入力文字列が表示されます。

この文字列トークナイザーは、Java で使用可能な StringTokenizer よりも強力です。単純な StringTokenizer では 1つの区切り文字しか使用できませんが、上記の方法では、複数の区切り記号に基づいて入力文字列を分割できます。

次のコードスニペットは、String.Split() 関数の機能を示す例を示しています。

string inputString =
    "This is some input String, but, is it actually a good string? The answer is upto you.";
string[] tokens = inputString.Split(new char[] { ' ', ',', '?' });
foreach (string token in tokens) {
  Console.WriteLine(token);
}

出力:

This
is
some
input
String

but

is
it
actually
a
good
string

The
answer
is
upto
you.

上記のコードスニペットは、入力文字列を受け取ります。

This is some input String, but, is it actually a good string? The answer is upto you.

コードは、複数の区切り文字に基づいてトークンをトークンに分割します。出力の空のエントリは、String.Split() 関数の 2 番目のパラメータとして StringSplitOptions.RemoveEmptyEntries を指定することで削除できます。

このメソッドに対する StringTokenizer クラスの利点は、指定された文字列内にすべての区切り文字またはトークンを格納できることですが、String.Split() 関数は区切り文字を破棄します。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp String