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.

該程式碼基於多個分隔符將其拆分為標記。可以通過將 StringSplitOptions.RemoveEmptyEntries 指定為 String.Split() 函式的第二個引數來刪除輸出中的空條目。

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