`
zuroc
  • 浏览: 1302364 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

boost在路上...tokenizer

    博客分类:
  • C++
F# 
阅读更多

boost在路上...tokenizer
tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela
tokenizer - 分解字串,提取内容.作者: John Bandela

例一:
// simple_example_1.cpp
#include<iostream>
#include<boost>
#include<string></string></boost></iostream>

int main(){
   using namespace std;
   using namespace boost;
   string s = "This is,  a test";
   tokenizer<> tok(s);
   for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg){
       cout << *beg << "\n";
   }
}

输出
This
is
a
test

tokenizer默认将单词以空格和标点为边界分开.

例二:
#include<iostream>
#include<boost>
#include<string></string></boost></iostream>

int main(){
   using namespace std;
   using namespace boost;
   string s = "Field 1,\"putting quotes around fields, allows commas\",Field 3";
   tokenizer<escaped_list_separator><char> > tok(s);
   for(tokenizer<escaped_list_separator><char> >::iterator beg=tok.begin(); beg!=tok.end();++beg){
       cout << *beg << "\n";
   }
}
输出
Field 1
putting quotes around fields, allows commas
Field 3</char></escaped_list_separator></char></escaped_list_separator>

双引号之间可以有标点.


例三:
// simple_example_3.cpp
#include<iostream>
#include<boost>
#include<string></string></boost></iostream>

int main(){
   using namespace std;
   using namespace boost;
   string s = "12252001";
   int offsets[] = {2,2,4};
   offset_separator f(offsets, offsets+3);
   tokenizer<offset_separator> tok(s,f);
   for(tokenizer<offset_separator>::iterator beg=tok.begin(); beg!=tok.end();++beg){
       cout << *beg << "\n";
   }
}</offset_separator></offset_separator>

把12252001分解为
12
25
2001

例4:
// char_sep_example_1.cpp
#include <iostream>
#include <boost>
#include <string></string></boost></iostream>

int main()
{
  std::string str = ";!!;Hello|world||-foo--bar;yow;baz|";
  typedef boost::tokenizer<boost::char_separator><char> >
    tokenizer;
  boost::char_separator<char> sep("-;|");
  tokenizer tokens(str, sep);
  for (tokenizer::iterator tok_iter = tokens.begin();
       tok_iter != tokens.end(); ++tok_iter)
    std::cout << "<" << *tok_iter << "> ";
  std::cout << "\n";
  return EXIT_SUCCESS;
}</char></char></boost::char_separator>

输出
<!----> <hello> <world> <foo> <bar> <yow> <baz>
自定义分隔的标点</baz></yow></bar></foo></world></hello>

例5:
    // char_sep_example_2.cpp
    #include <iostream>
    #include <boost>
    #include <string></string></boost></iostream>

    int main()
    {
        std::string str = ";;Hello|world||-foo--bar;yow;baz|";
        typedef boost::tokenizer<boost::char_separator><char> >
            tokenizer;
        boost::char_separator<char> sep("-;", "|", boost::keep_empty_tokens);
        tokenizer tokens(str, sep);
        for (tokenizer::iterator tok_iter = tokens.begin();
             tok_iter != tokens.end(); ++tok_iter)
          std::cout << "<" << *tok_iter << "> ";
        std::cout << "\n";
        return EXIT_SUCCESS;
    }</char></char></boost::char_separator>

The output is:

    <> <> <hello> <|> <world> <|> <> <|> <> <foo> <> <bar> <yow> <baz> <|> <>
去除-; , 保留|但将它看作是分隔符,当两个分隔符相邻的时候会自动加空格</baz></yow></bar></foo></world></hello>

例6:
    // char_sep_example_3.cpp
    #include <iostream>
    #include <boost>
    #include <string></string></boost></iostream>

    int main()
    {
       std::string str = "This is,  a test";
       typedef boost::tokenizer<boost::char_separator><char> > Tok;
       boost::char_separator<char> sep; // default constructed
       Tok tok(str, sep);
       for(Tok::iterator tok_iter = tok.begin(); tok_iter != tok.end(); ++tok_iter)
         std::cout << "<" << *tok_iter << "> ";
       std::cout << "\n";
       return EXIT_SUCCESS;
    }</char></char></boost::char_separator>

The output is:

    <this> <is> <,> <test>
保留标点但将它看作分隔符
</test>
</is></this>

 
分享到:
评论

相关推荐

    llama3-8b tokenizer.model 《llama3-8b tokenizer.model:理解和应用》

    《llama3-8b tokenizer.model:理解和应用》 在深度学习领域,预处理是模型训练过程中的关键步骤,而tokenizer则是预处理阶段的核心工具。本文将深入探讨“llama3-8b tokenizer.model”,一个专门用于处理大模型如...

    llama3-8b tokenizer.model

    总结来说,“llama3-8b tokenizer.model”是针对大型语言模型LLAMA的高效分词工具,它通过将文本转换为模型可理解的数字表示,极大地推动了深度学习在自然语言处理领域的应用。正确理解和使用这个tokenizer,对于...

    THE BOOST C++ LIBRARIES

    5.5 Boost.Tokenizer 5.6 Boost.Format 5.7 Exercises Chapter 6: Multithreading 6.1 General 6.2 Thread Management 6.3 Synchronization 6.4 Thread Local Storage 6.5 Exercises Chapter 7: Asynchronous Input ...

    tokenizer.model

    tokenizer.model

    Boost介绍.doc

    - **高性能**:Boost.Regex 在设计时考虑到了性能问题,因此在执行速度上表现优异。 - **易用性**:该模块的设计理念与STL相似,使得开发者能够快速上手并利用其功能。 - **兼容性**:Boost.Regex 的设计兼容了多种...

    C++“准”标准库Boost简介.pdf

    官网www.boost.org是获取最新文档、下载库和了解社区活动的最佳资源。 Boost库的58个独立组件涵盖了从基础工具到高级特性的广泛范围。例如,Boost.Regex库已被采纳进入C++标准,成为C++11及以后版本的一部分。其他...

    boost开发指南第三版

    5. Boost的字符串与文本处理:详细说明Boost中处理字符串和文本的各种工具和库,例如Boost.Tokenizer,Boost.StringAlgo等,它们提供了比C++标准库更丰富的字符串操作功能。 6. Boost的泛型编程:介绍如何使用Boost...

    开源项目-go-web-tokenizer.zip

    **开源项目-go-web-tokenizer.zip** 是一个基于Go语言的开源项目,主要功能是生成URL安全的定时令牌。这个项目,名为 **go-web/tokenizer**,设计的目标是为Web应用提供安全、高效的令牌生成和验证服务,特别是适用...

    PyPI 官网下载 | tokenizer_tools-0.11.0.tar.gz

    在云原生环境中,"tokenizer_tools"可以轻松集成到容器化服务中,例如Docker和Kubernetes,从而轻松地在多节点集群上部署和扩展分词服务。 "tokenizer_tools-0.11.0.tar.gz"压缩包内的文件结构通常会包含以下几个...

    string_tokenizer_unittest.rar_tokenizer

    在IT行业中,字符串处理是至关重要的,特别是在编程和数据分析领域。`string_tokenizer_unittest`这个标题暗示我们这里涉及的是一个用于分割字符串的工具或库的单元测试代码,特别是针对Linux环境。`tokenizer`标签...

    Boost.org分词器模块.zip

    在"tokenizer-develop"这个文件中,我们可以推测这可能是一个开发版本或者源代码包,用于扩展或定制Boost.org分词器的功能。通常,开发版本会包含源代码、编译脚本、文档、示例和测试用例等资源,帮助开发者理解和...

    Python技法:用re模块实现简易tokenizer.doc

    在Python中,我们可以利用强大的正则表达式库`re`来构建一个简单的tokenizer,专门用于处理编程语言表达式。 正则表达式(Regular Expression)是一种模式匹配工具,它可以用来检查一个字符串是否符合某种模式,...

    antTokenizer.jar.zip

    在Ant Tokenizer.jar.zip压缩包中,除了核心的Ant Tokenizer.jar文件外,还包括了ant.license.txt文件。这个文件通常包含了软件的许可协议,详细阐述了用户可以如何使用、修改和分发该软件,遵循开源软件的使用规则...

    boost库简介

    4.Boost.Tokenizer 库:提供了把字符序列分割成记号(token)的方法,用于语法分析任务,可以把字符序列视为多个元素的容器,将很有帮助。 5.Boost.Any 库:支持类型安全地存储和获取任意类型的值,常用于把不同...

    No module named ‘transformers.models.auto.tokenization-auto‘

    要离线使用,首先需要在有网络的时候通过`save_pretrained()`方法保存模型和tokenizer到本地,然后在无网络环境里通过`from_pretrained()`方法指定本地路径加载。 5. **解决"No module named…"错误**:如果遇到找...

    LLaMA Tokenizer

    LLaMA Tokenizer的模型文件`tokenizer.model`包含了上述的所有参数和模型权重,用于将输入文本转化为模型可以处理的数字序列。在实际应用中,用户可以通过加载这个模型文件,调用Tokenizer的API来进行文本的预处理...

    Python库 | tokenizer-1.0.3-py2.py3-none-any.whl

    Python库`tokenizer-1.0.3-py2.py3-none-any.whl`是一个用于文本处理的工具,它在Python的开发中扮演着重要角色。`tokenizer`库专注于文本分词,这是自然语言处理(NLP)的一个基本任务,旨在将连续的文本字符串分解...

    IKAnalyzer中文分词器

    IKAnalyzer中文分词器V3.2.8使用手册

    PyPI 官网下载 | tokenizer_tools-0.39.0.tar.gz

    今天我们要讨论的是PyPI上的一款名为`tokenizer_tools`的工具包,版本号为0.39.0,它被封装在一个名为`tokenizer_tools-0.39.0.tar.gz`的压缩文件中。这款工具包在自然语言处理(NLP)领域有着广泛的应用,尤其在...

    Python库 | bert_tokenizer-0.1.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:bert_tokenizer-0.1.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

Global site tag (gtag.js) - Google Analytics