1

我试图了解如何使用icu::BreakIterator来查找特定的单词。

例如我有以下句子:

生存还是毁灭?就是那个问题...

中断迭代器的 Word 实例会在此处放置中断:

|到| |是| |或| |不是| |到| |是|?| |那个| |是| |那个| |问题|.|.|.|

现在,并不是每一对断点都是真实的单词。

在派生类icu::RuleBasedBreakIterator中有一个“getRuleStatus()”,它返回一些关于中断的信息,它给出了“以下点的字状态(标记为“/”)”

|到/ |是/ |或/ |不是/ |到/ |是/?| |那个/ |是/ |那个/ |问题/。|.|.|

但是...这一切都取决于特定的规则,并且绝对没有文档可以理解它(除非我只是尝试),但是使用字典的不同语言环境和语言会发生什么?后件迭代会发生什么?

有什么方法可以像在 Qt QTextBoundaryFinder 中那样获取“单词开头”或“单词结尾”信息:http: //qt.nokia.com/doc/4.5/qtextboundaryfinder.html#BoundaryReason-enum

我应该如何正确解决ICU中的此类问题?

4

1 回答 1

3

您是否尝试过ICU 文档?它似乎解释了您所询问的所有内容,包括处理国际化、反向迭代和规则,包括默认设置和如何创建自己的自定义集。他们还有代码片段可以提供帮助。

于 2009-09-28T19:58:58.700 回答