我想检测文本中的单词,即我需要知道给定文本中的哪些字符是字母,即它们可以是(口语)单词的一部分,而另一方面,哪些字符是标点符号等。
例如,在上面的句子中,“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/