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() 메서드를 사용하여 개별 단어로 분할된 원래 문자열 This is some input String을 보여줍니다.

이 문자열 토크나이저는 Java에서 사용할 수 있는 StringTokenizer보다 강력합니다. 간단한 StringTokenizer는 하나의 구분 기호만 허용하지만 위의 방법은 여러 구분 기호를 기반으로 입력 문자열을 분할할 수 있습니다.

다음 코드 스니펫은 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() 함수에 대한 두 번째 매개변수로 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