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

例如我有以下句子:

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

中断迭代器的 Word 实例会在那里放置中断:

| | | BE | |或| |不| | | | BE |?| |那| |是| | | |问题|。|。|。|

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

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

| to/ | be/ | or/ | not/ | to/ | be/?| | that/ | is/ | the/ |问题/。|。|。|

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

有没有办法像 Qt QTextBoundaryFinder 一样获取“词开始”或“词结束”信息: http://qt.nokia.com/doc/4.5/qtextboundaryfinder.html#BoundaryReason-enum?

在ICU遇到这样的问题该如何正确解决?

有帮助吗?

解决方案

您是否尝试过 ICU文档?这似乎说明一切则是问有关,包括国际化的处理,反反复,规则,默认和如何创建自己的自定义设置。他们也有代码片断帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top