首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ICU进行分词

使用ICU进行分词
EN

Stack Overflow用户
提问于 2012-11-21 22:00:03
回答 2查看 3K关注 0票数 0

我正在使用ICU4C来音译中日韩。我想知道是否有可能在ICU中进行分词,根据一些分词标准将中文文本分割成一系列的单词。

例如,当我尝试音译时:

代码语言:javascript
复制
直接输出html代码而不是作为函数返回值代后处理

使用

代码语言:javascript
复制
Transliterator* myTrans = 
                  Transliterator::createInstance("zh-Latin",UTRANS_FORWARD, err);
UnicodeString str;
str.setTo("直接输出html代码而不是作为函数返回值代后处理");
myTrans->transliterate(str);
str.toUTF8String(st);
std::cout << st << std::endl;

我得到以下输出:

代码语言:javascript
复制
zhí jiē shū chū html dài mǎ ér bù shì zuò wèi hán shù fǎn huí zhí dài hòu chù lǐ

与在线拼音工具相比,这似乎完全没有问题,但我的问题是ICU逐个音译字符。不过,我正在寻找的内容更像下面的文本(我不懂任何中文,所以下面的文本可能没有任何意义,但它应该说明我对哪种输出感兴趣):

代码语言:javascript
复制
zhíjiē shūchū html dàimǎér bùshì zuò wèihán shùfǎn huízhídài hòu chùlǐ

I have been told说ICU50能够分词,但我在他们的网页上也找不到任何文档。想知道你们中是否有人在ICU中使用过分词,或者知道如何进行分词,或者是否有关于如何进行分词的好链接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 00:14:28

“基于字典的迭代器”并不是一个不同的API。只需使用适当的语言环境ID创建一个ICU分词迭代器。

icu/source/samples/break中有一个随ICU提供的C/C++示例

下面的示例代码还显示了断字:http://source.icu-project.org/repos/icu/icuapps/trunk/iucsamples/c/s24_brkw/s24_brkw.cpp http://source.icu-project.org/repos/icu/icuapps/trunk/iucsamples/c/s23_brki/

可能是这样的:

代码语言:javascript
复制
  BreakIterator *wordIterator = BreakIterator::createWordInstance(Locale("zh"), status);
UnicodeString text = "Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language.";
  wordIterator->setText(text);
  int32_t breakCount = 0;
    int32_t start = wordIterator->first();
    for(int32_t end = wordIterator->next();
        end != BreakIterator::DONE;
        start = end, end = wordIterator->next())
    {
         breakCount++;
    }
  delete wordIterator;
票数 1
EN

Stack Overflow用户

发布于 2012-11-28 15:19:58

“有一个全新的也在进行中,它做分割和拆分你的文本如下-当选择中文。希望这有帮助。”

代码语言:javascript
复制
直接
输出
html
代码
而不是
作为
函数
返回
值
代
后
处理

这将解决我的问题,我需要音译输出得到我想要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13494910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档