C#의 문자열 토크나이저

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() 함수는 구분 기호를 버린다는 것입니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
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