0

是否有任何可用的库用于某些象形文字语言的字数统计(例如:中文、日文、韩文......)?

我发现 MS Word 可以有效地计算这些语言的文本。我可以在我的 .NET 应用程序中添加对 MS Word 库的引用来实现此功能吗?

或者有没有其他解决方案可以达到这个目的?

4

1 回答 1

2

是否有任何可用的库来计算某些象形文字语言的字数(例如:中文、日文、韩文……)?

象形文字?不,他们不是。它们是标志性的字符,并没有那么细微的区别。我敢肯定,一些母语人士可能会比我更好地解释这一点。

日文和中文文本由与西方语言完全相同的字符组成,但一个字符可能是一个单词。此外,它们不需要空格来分隔单词,因此我们的区分字符/单词不能使用空格作为分隔符。

Word 所做的是对单词进行计数(假设它们等于字符),您可以在代码中执行相同的操作(只是不要忘记它是 UNICODE,因此您无法计算字节数)计数字符。要计算真实单词,您需要一本字典(因为您不能依赖空格)。

例如这些字符串:

这是一个示例文本</p>

これは、サンプルのテキストです

将按8字8字(中文)和日文15字15字计算。实际上不是(例如在日语中,转写为罗马字时是 5 个单词)。此外,不要忘记在日语中他们有不止一个字母表(其中一个家族是拼音的)。

重点是什么?你会算什么?音译为我们用来表示它们的一种语音表示(带有拉丁字符)的单词?哪一个?字数统计将完全不同,它实际上会计算我们的单词概念(这就是为什么,我想,字数字符)。

也就是说,现在尝试编写以下代码:

string text = "这是一个示例文本&quot;;
MessageBox.Show(text.Length.ToString());

它将显示 8,就像 Word 一样(我们正在计算字符),以字节为单位(假设 UTF-8 编码)是 24。在这里计算空格是没有意义的。如果您打算计算一个音译中的单词,则需要使用外部库(自己做这件事不是一件容易的事),为您想要支持的每种语言使用不同的库(不知何故,自动检测语言很容易,因为在日语,他们经常使用平假名/片假名字符)。哪一个?有很多,我不知道中文,但在日语中,一个流行的音译汉字是Kakasi

韩语是一个完全不同的故事,它是一个与拉丁字母完全相同的字母,但字符(应该称为音节)可能由许多字母组成。同样,它们不需要空格,因此您不能依赖它们来计算字数。它在某种程度上更复杂,因为在这里你可能需要一个字典来计算字符(否则你只会计算音节)。

于 2013-07-30T07:48:39.897 回答