C# 中的字符串分词器

Muhammad Maisam Abbas 2023年10月12日
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