【问题标题】:Tokenize latin-1 text in c++在 C++ 中标记 latin-1 文本
【发布时间】:2015-03-24 12:48:04
【问题描述】:

我有一个带有拉丁文本的 mysql 表。我正在尝试将此文本标记为单词。

我遇到了 boost 和 ICU 标记器。问题是这些库希望我弄清楚边界这个词。

我尝试遵循 boost 代码(使用默认标记器,即空格和标点符号)。

int main(){

   using namespace std;
   using namespace boost;

   string s = "Tänk efter nu – förr'n vi föser dig bort";
   tokenizer<> tok(s);

   for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg){
       cout << *beg << "\n";
   }

   return 0;
}

它确实给了我单词列表。但在这里我假设空格是正确的单词分隔符。

考虑到这些 (http://en.wikipedia.org/wiki/ISO/IEC_8859-1#Languages_with_complete_coverage) 语言的集合,使用上述代码是否安全?

或者你有没有其他解决方案?

【问题讨论】:

标签: c++ boost latin1


【解决方案1】:

ICU 支持考虑文本语言特性的边界分析:

http://userguide.icu-project.org/boundaryanalysis

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    相关资源
    最近更新 更多