unicode - 如何区分哪些 Unicode 字符是字母(单词),哪些是标点符号?

标签 unicode text

我想检测文本中的单词,即我需要知道给定文本中的哪些字符是字母,即它们可以是(口语)单词的一部分,而另一方面,哪些字符是标点符号等。

例如,在上面的句子中,“I”、“want”、“i”和“e”是这方面的单词,而空格是“.”。和逗号则不是。

其中的困难在于我希望能够读取任何类型的基于 Unicode 的脚本。例如,德语单词“schön”就是一个单词。但是希腊语、阿拉伯语或日语呢?

所以,我需要一个表格或列表,指定可以形成单词的所有字符范围。或者,我还想知道哪些字符是可以形成数字的数字(假设其他脚本具有与阿拉伯数字类似的编号方案)。

我需要这个用于 Mac OS X、Windows 和 Linux。我将编写一个 C 应用程序,因此它需要是一个操作系统库或一个完整的代码/数据解决方案,我可以将其转换为 C。

我知道 Mac OS (Cocoa) 提供了用于此目的的功能,但我不确定 Win 和 Linux 是否有类似的解决方案(可能是基于 gtk?)。

或者,如果我有完整的表格,我可以编写自己的代码。

我找到了 unicode 图表 ( http://unicode.org/charts/index.html#scripts ),但这并不是我可以在编程中使用的一种方便的形式。

那么,有人可以告诉我 Windows 和 Linux 是否有用于此目的的函数,或者我在哪里可以找到 unicode 中单词字符的完整表/列表?

最佳答案

您可以尝试使用Unicode character category找出单词分隔符可能是什么,但请注意,某些语言(例如日语)甚至没有单词分隔符。

关于unicode - 如何区分哪些 Unicode 字符是字母(单词),哪些是标点符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248418/

相关文章:

javascript - 输入id时如何勾选复选框?

c++ - 从 WinApi 中的可编辑文本字段读取数据

java - Unicode 字节序列/将字符转换为字节数组

java - Java 如何在其 16 位 char 类型中存储 UTF-16 字符?

python 2.7 : 'Ramón' == u'Ramón'

Qt 和 unicode 转义字符串

c++ - 无法让 ios::beg 返回到文件开头

javascript - 如何将unicode字符串拆分为多个字符?

python - 如何从 python 中的字符串中删除不需要的字符?

javascript - 仅将 html 列表项的文本存储在 javascript 数组中,而不存储图像 src