一些象形文字语言中的单词计数器
本文关键字:单词 计数器 语言 象形文字 | 更新日期: 2023-09-27 18:25:37
有没有可用的库来计算某些象形文字的单词(例如:中文、日语、韩语…)?
我发现MS Word可以有效地计算这些语言中的文本。我可以在.NET应用程序中添加对MS Word库的引用来实现此函数吗?
或者是否有其他解决方案可以实现这一目的?
有没有可用的象形文字库(例如:汉语、日语、韩语…)?
象形文字?不,他们不是。它们是徽标字符,并没有那么微妙的区别。我相信一些母语为英语的人可能会比我更好地解释这一点
日语和汉语文本是由字符组成的,与西方语言完全一样,但一个字符可能是单词。此外,它们不需要空格来分隔单词,因此我们的区分字符/单词不能使用空格作为分隔符。
Word所做的是计算单词(假设它们等于字符),你也可以在代码中计算字符(只是不要忘记它是UNICODE,所以你不能计算字节)。要计算真实单词,您需要一本字典(因为您不能依赖空格)。
例如这些字符串:
这是一个示例文本
これは、サンプルのテキストです
将被计算为8个字符和8个单词(中文)和15个字符和15个单词(日语)。实际上不是(例如,在日语中,用罗马字音译是5个单词)。此外,别忘了在日语中,它们有不止一个字母表(其中一个家族是拼音的)。
有什么意义你会数多少音译为我们用来表示它们的语音表示之一(带有拉丁字符)的单词?哪一个?单词计数将大不相同,它实际上会计算我们的单词概念(我想这就是为什么Word计算字符)。
也就是说现在试着写这个代码:
string text = "这是一个示例文本";
MessageBox.Show(text.Length.ToString());
它将显示8,就像Word一样(我们正在计算字符),以字节为单位(假设UTF-8编码)为24。计算这里的空格毫无意义。如果你计划在一个音译中计算单词,你需要使用一个外部库(自己做这件事并不容易),为你想要支持的每种语言提供一个不同的库(不知何故,自动检测语言很容易,因为在日语中,它们经常使用平假名/片假名字符)。哪一个?它们有很多,我不知道中文,但在日语中,一个流行的音译汉字的名字是Kakasi。
韩语是一个完全不同的故事,它是一个与拉丁字母完全相同的字母表,但字符(应该称为音节)可能由许多字母组成。同样,它们不需要空格,所以你不能依靠它们来计算单词。这在某种程度上更复杂,因为在这里,你可能需要一本字典,即使是用于计算字符(否则你只会计算音节)。