gpt4 book ai didi

c++ - 使用 boost 标记化给出相同的输出

转载 作者:行者123 更新时间:2023-11-30 04:55:33 25 4
gpt4 key购买 nike

我想标记很多缅甸语文本。所以我尝试使用 boost 分词器。

我尝试使用的文本是 ခြင်းခတ်ခဲ့တာလို့,它应该被标记化为 ခြင်းင်းခြင်း 但它只是输出输入我做错了什么吗?

    #include<iostream>
#include<boost/tokenizer.hpp>
#include<string>

int main(){
using namespace std;
using namespace boost;
string s = "ျခင္းခတ္ခဲ့တာလို႕";
tokenizer<> tok(s);
for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg){
cout << *beg << "\n";
}
}

输出应该分成一系列标记,如:ခြင်းခတ်ခဲ့တာလို့ 但目前,输出等于输入。

如果可能的话,我想将其标记为一系列带有单词边界的标记。

最佳答案

我不懂那种语言,但检测单词边界通常不是分词。

相反,使用 Boost Locale's Boundary Analysis

样本:

using namespace boost::locale::boundary;
boost::locale::generator gen;
std::string text="To be or not to be, that is the question."
// Create mapping of text for token iterator using global locale.
ssegment_index map(word,text.begin(),text.end(),gen("en_US.UTF-8"));
// Print all "words" -- chunks of word boundary
for(ssegment_index::iterator it=map.begin(),e=map.end();it!=e;++it)
std::cout <<"\""<< * it << "\", ";
std::cout << std::endl;

会打印

"To", " ", "be", " ", "or", " ", "not", " ", "to", " ", "be", ",", " ", "that", " ", "is", " ", "the", " ", "question", ".",

这句话 "生きるか死ぬか、そレガ问题だ。" 将在 ja_JP.UTF-8(日语)语言环境中拆分为以下部分:

"生", "きるか", "死", "ぬか", "、", "それが", "問題", "だ", "。", 

演示

使用 OP 文本和 my_MM 语言环境的演示:

Live On Coliru

#include <boost/range/iterator_range.hpp>
#include <boost/locale.hpp>
#include <boost/locale/boundary.hpp>
#include <iostream>
#include <iomanip>

int main() {
using namespace boost::locale::boundary;
boost::locale::generator gen;
std::string text="ျခင္းခတ္ခဲ့တာလို႕";

ssegment_index map(word,text.begin(),text.end(),gen("my_MM.UTF-8"));

for (auto&& segment : boost::make_iterator_range(map.begin(), map.end()))
std::cout << std::quoted(segment.str()) << std::endl;
}

打印

"ျ"
"ခ"
"င္း"
"ခ"
"တ္"
"ခဲ့"
"တာ"
"လို႕"

这可能是也可能不是 OP 所期望的。请注意,您可能必须在系统上生成/安装适当的语言环境才能使其按预期工作。

关于c++ - 使用 boost 标记化给出相同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52969043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com