java.util.StirngTokenizer 示例代码

深度学习文本预处理利器:Tokenizer详解 Tokenizer是一个用于向量化文本,将文本转换为序列的类。计算机在处理语言文字时,是无法理解文字含义的,通常会把一个词(中文单个字或者词)转化为一个正整数,将一个文本就变成了一个序列,然后再对序列进行向量化,向量化后的数据送入模型处理。 阅读详情

2003年9月发于 CCW-I
2006年9月搬至 优快云

 示例代码如下,代码说明请看注释:

/*
 * @(#) TestStringTokenizer.java
 * by James Fancy
 * on 2003-9-27
 
*/


import java.util.StringTokenizer;

/**
 * <code>TestStringTokenizer</code> 类给出了三个示例,
 * 演示了 StringTokenizer 类 的常见用法。
 * 
 * 
@author James Fancy on 2003-9-27 9:12:34
 
*/

public final class TestStringTokenizer {

    
public final static void main(String[] args) {
    TestStringTokenizer test 
= new TestStringTokenizer();
    test.test1();
    test.test2();
    test.test3();
    }


    String source 
= "abcdefg;hijklmn|opqrst,uvw.xyz";

    String source3 
= "The file "Good Java Code.txt" is in dir"
        
+ " "My Documents" of volume "Doc Volume"";

    String delim 
= ";,.|"; // 包含分号、逗号、句点、竖址分隔符

    String delim2 
= " ""; // 包含空格、引号

    String delim3 
= """; // 仅包含引号

    
/**
     * 演示 StringTokenizer 最常用的用法,
     * 使用 StringTokenizer(String, String) 构造 Tokenizer。
     
*/

    
public void test1() {
    
this.printSeparater("TEST1");
    StringTokenizer tokenizer;
    tokenizer 
= new StringTokenizer(source, delim);

    
while (tokenizer.hasMoreTokens()) {
        System.out.println(tokenizer.nextToken());
    }

    }


    
/**
     * 演示 StringTokenizer 的 nextToken(String) 用法
     
*/

    
public void test2() {
    
this.printSeparater("TEST2");
    StringTokenizer tokenizer 
= new StringTokenizer(source);
    
while (tokenizer.hasMoreTokens()) {
        System.out.println(tokenizer.nextToken(delim));
    }

    }


    
/**
     * 一个较综合的示例,它拆分一句话,将每个单词拆分出来,
     * 其中,被双引号包含 的若干单词被处理为一个单词输出。
     
*/

    
public void test3() {
    
this.printSeparater("TEST3");
    String delim 
= delim2;
    String word;
    
boolean begin = false;

    StringTokenizer tokenizer 
= new StringTokenizer(source3, delim, true);
    
while (tokenizer.hasMoreTokens()) {
        word 
= tokenizer.nextToken(delim);
        
if (word.equals(""")) {
        
if (begin) {
            delim 
= delim2;
            begin 
= false;
        }
 else {
            delim 
= delim3;
            begin 
= true;
        }

        }
 else if (!word.equals(" ")) {
        System.out.println(word);
        }

    }

    }


    
private void printSeparater(String title) {
    System.out.println(
"--------- " + title + " ---------");
    }


}

运行结果如下,看看是不是你根据代码猜想的一样:

--------- TEST1 ---------
abcdefg
hijklmn
opqrst
uvw
xyz
--------- TEST2 ---------
abcdefg
hijklmn
opqrst
uvw
xyz
--------- TEST3 ---------
The
file
Good Java Code.txt
is
in
dir
My Documents
of
volume
Doc Volume

五分钟轻松通俗理解 tokenizer、encoder、decoder、embedding 的区别和联系 tokenizer和embedding可以理解为数据的预处理。输入文本首先通过tokenizer被转换成标记(tokens_id),这是将文本转化为模型可以处理的数字序列的第一步。然后,这些标记会通过嵌入层(Embedding Layer)被转换成高维向量表示。这一步是将离散的标记映射到连续的向量空间,以便模型能够在向量空间中处理信息。虽然这个过程看起来类似于“编码”(因为我们在将离散标记转换为连续向量),但这与Transformer中的编码器(Encoder)层的功能是不一样的。 阅读详情

相关推荐

超详细Tokenizer——文本训练数据预处理

Tokenizer是Keras库中的一个文本处理工具,它用于将文本分词并构建词汇表,同时将文本映射到整数序列。这对于自然语言处理任务非常有用,例如文本分类、情感分析、机器翻译等。

halo的博客 3701

tokenizer简介

本文介绍了现代NLP中有关tokenizer的内容

芳樽里的歌的博客 2万+

【Transformer】一文深入理解 Tokenizer 与 Embedding

本文详解了NLP中Tokenizer与Embedding的区别与联系。Tokenizer负责将原始文本切分为token并映射为ID(如BERT的WordPiece),属于预处理步骤;而Embedding则将离散ID转换为连续向量(如768维),是模型的可训练参数。两者共同完成文本到向量表示的转换流程,其中Tokenizer不直接输出向量,Embedding才是转向量的关键步骤。在Transformer/BERT模型中,输入需经过Tokenizer→Embedding→加入位置编码后,才送入Encoder层。

2504_90578160的博客 1945

Tokenizer总结

Introduciton transformer类型的预训练模型层出不穷,其中的tokenizer方法作为一个非常重要的模块也出现了一些方法。本文对tokenizer方法做一些总结。参考来自hunggingface。 tokenizer在中文中叫做分词器,就是将句子分成一个个小的词块(token),生成一个词表,并通过模型学习到更好的表示。其中词表的大小和token的长短是很关键的因素,两者需要进行权衡,token太长,则它的表示也能更容易学习到,相应的词表也会变小;to...

choose_c的博客 1万+

【RAG】一文读懂:Tokenizer 与 Embedding 的核心区别和模型选型以及如何用原生 Encoder 生成中文语义向量(附带 C-MTEB 中文句向量模型 TOP 10 排行榜)

在构建 RAG 或检索系统时,如何选择embedding 模型,确实是一个难题,本文给出embedding 模型和Tokenizer的区别,并给出当前企业排名前十的模型以及建议。

weixin_41645791的博客 1923

带你从零认识Tokenizer

Tokenizer是一个词元生成器,它首先通过分词算法将文本切分成独立的token列表,再通过词表映射将每个token转换成语言模型可以处理的数字。

golfxiao的专栏 2909

【深度学习技术系列】大模型基础组件 - Tokenizer

文章目录1. 前言2. 示例3. 对比4. 子词切分4.1 字节对编码(Byte-Pair Encoding, BPE)4.1.1 训练阶段4.1.2 推理阶段4.1.3 BBPE4.2 WordPiece4.2.1 训练阶段4.2.2 推理阶段4.3 Unigram4.3.1 训练阶段4.3.2 推理阶段4.4 SentencePiece4.4.1 byte回退5. 语法5.1 英文文本向量化5.2 对中文文本向量化参考 1. 前言 Tokenizer是一个用于向量化文本,将文本转换为序列的类。计算机在

小田的专栏 5613

单细胞分析进阶:sctransform标准化在Seurat中的实战解析

本文深入解析了sctransform标准化方法在Seurat单细胞分析中的实战应用。通过对比传统对数标准化,sctransform能更有效地建模并剔除技术噪音,提升数据质量。文章提供了从环境配置、数据准备、核心参数解析到完整流程整合的详细指南,并针对常见问题给出解决方案,帮助研究者获得更清晰的细胞分群和更可靠的差异表达结果。

weixin_29248313的博客 150

大语言模型入门之Tokenization

LLM(Large Language Model,大型语言模型)的Tokenization是自然语言处理(NLP)中的一个重要步骤,它指的是将原始文本转换成模型可以理解和处理的离散符号序列的过程。Tokenization是LLM处理文本数据的基石,它将自然语言文本分解成更小的单元或标记(Token),这些Token可以是单词、单词的一部分(如子词)、甚至是一个字符。然后这些 token 被转换成向量(vector),它们是这些单词的数字表示。

m0_61977748的博客 2713

V93000 SmarTest 8入门:从零搭建你的第一个半导体测试程序

半导体测试是芯片从设计走向量产的关键环节,而ATE(自动化测试设备)正是支撑这一环节的核心工具。理解ATE测试程序开发的基本原理,不仅需要掌握测试机台的硬件架构,还要熟悉其软件环境中的管脚映射、电平时序、测试流程等底层逻辑。V93000作为爱德万的主力平台,其SmarTest 8环境通过对象化与流程化设计,将复杂的芯片测试任务拆解为可配置、可复用的模块,极大提升了并行测试效率与调试的便利性。无论是数字逻辑芯片的功能验证,还是模拟混合信号器件的参数测量,掌握SmarTest 8的核心操作都能帮助你快速搭建出可

weixin_31476015的博客 240

使用 Simulink + Simscape Electrical 实现一个变压器耦合式单相全波整流器的仿真模型

本文介绍了基于Simulink的变压器耦合式单相全波整流器建模与仿真方法。详细说明了从项目创建、模块添加、电路搭建到参数配置的完整建模过程,重点分析了整流器的效率与损耗特性,包括变压器损耗和二极管导通损耗。通过仿真展示了输入输出波形特征,并提出了选用高效元件、优化变压器设计等改进建议。该案例为电力电子系统建模提供了实用参考,有助于深入理解整流电路工作原理和性能优化方法。

amy_mhd的博客 187

通俗易懂讲解大模型:Tokenizer

我们不是合并频繁的字节对,而是合并频繁的字符或字符序列。这里通过将前缀添加到单词内的每个字符来拆分的,单词的首字符不添加前缀。找到词表中能够匹配到的最长的子词,然后对单词进行拆分。现在的问题是,给定一个训练语料库 D ,如何获得词表 V 以及每个子词出现的概率 p(x)。的物理意义为:通过将 t1,t2 合并为 t1,2 之后,语料库的对数似然的增量最大化。然而这又因语言而异,例如,在中文中每个字符比拉丁语言中的每个字符包含更多的信息。注意,在更大的语料库中这样的相等的情况很少见。

2301_78285120的博客 1万+

【报错解决】OpenClaw 报错 `openclaw: command not found`:全局命令未加入系统 PATH 的深度排查与修复指南

在国产AI工具链开发中,OpenClaw作为关键命令行工具常出现command not found报错。本文深度分析该问题的根源——Linux环境变量PATH未包含用户级安装目录(~/.local/bin)。通过四种解决方案(临时PATH修改、永久配置、软链接、虚拟环境处理)和排错Checklist,揭示"命令存在却找不到"的本质是路径配置问题,特别适用于Docker/国产Linux/非root环境。文中强调理解Linux工具链机制对国产AI开发的重要性,并指出这是开发者掌握环境

博客 5382

Tokenizer基础使用教程

Tokenizer基础使用教程

my的博客 1877

【ComfyUI专栏】安装Triton组件

Triton是一款支持大模型推理的深度学习加速组件,最初仅支持Linux平台,现已通过开源社区适配Windows系统。针对SageAttention的安装,建议使用3.2.0Post10版本(该版本提供封装好的安装包,更高版本仅有源码)。用户可通过GitHub获取安装资源,或直接使用pip命令"pip install triton-windows"进行安装。安装时需注意:1)在虚拟环境中操作;2)使用管理员权限。相关资源链接已在文中提供。

技术与管理的平衡木- 1861

【图像去噪】论文复现:灵感源自MAE!进一步解决BSN的局限性,破坏真实噪声的空间相关性!AMSNet的Pytorch源码复现,跑通源码,原理详解!

论文题目:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising —— 自监督真实图像去噪的非对称掩码方案【图像去噪】论文精读:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising(AMSNet)AMSNet是基于PyTorch Lightning CLI深度学习框架编写的,比较适合复杂的大型任务,复用很方便,但是安装和环境配置问题太多。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

深入解析大语言模型中的Token和Tokenizer:实例与应用

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!

star_nwe的博客 2283

YOLOv8改进,YOLOv8主干网络替换为ShuffleNetV2

ShuffleNet V2的设计原则:1.减少内存访问成本:通过优化数据传输路径,减少内存访问延迟,提高整体运算速度。2.考虑平台特性:针对不同硬件平台的特性进行优化设计,确保在目标平台上的高效运行。3.结构简洁高效:采用简洁而高效的模块设计,降低计算复杂度,同时保持或提升模型的预测准确性。下图,以四种不同计算复杂度水平下的准确性(在ImageNet验证集上的分类),速度和FLOPs的测量结果。(a, c) 为GPU结果,批量大小为8。(b, d) 为ARM结果,批量大小为1。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1565

大模型中的Tokenizer

在使用GPT 、BERT模型输入词语常常会先进行tokenize。tokenize的目标是把输入的文本流,切分成一个个子串,每个子串相对有完整的语义,便于学习embedding表达和后续模型的使用。

wangziling123456的博客 2074

芯片工程师-必须掌握的linux操作-第一讲

一个从材料专业,转行芯片验证初级工程师,自己也是从0基础开始学习入门,更知道0基础的人应该怎么去学习。 现在工作三个多月了,特地花时间给大家写这篇文章。希望能关注、支持下。 为什么芯片验证工程师必须要学习linux命令? 答: ① 芯片工程师主要的职责,就是与IC设计工程师和系统工程师密切合作,开发验证平台,能够根据项目要求产生测试计划,产生代码及功能覆盖率,撰写验证报告。 ②简单点说,主要工作内容,是编写代码去验证设计的对不对。 那么问题来了,编写代码,在什么环境呢,我现在告诉你,都是在linux系统中进

小白蒋-材料转行芯片验证 4841

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

tokenizer介绍

​SentencePiece是什么SentencePiece 是一个由 Google 开发的开源工具,旨在帮助构建高效的自然语言处理(NLP)模型。它是一个跨平台的库,可以在多种操作系统上运行,包括但不限于 Windows、Linux 和 macOS。SentencePiece 的主要功能是在不需要预先定义词汇表的情况下,自动从大规模文本数据中学习如何将文本切分为“子词单元”(subword units)。这种方法可以有效地处理未知词汇和低频词汇的问题,这对于提高自然语言处理模型的性能非常关键。

2126

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

前端大模型入门:编码(Tokenizer)和嵌入(Embedding)解析 - llm的输入

大模型并不能直接理解文字等数据,所以需要利用编码+嵌入.本文利用两个js库来介绍了对比了二者的作用,看完立刻试试吧

分享有趣的、贴近生活的CS知识 4109

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

1.5.3 什么是Tokenizer-分词

什么是Tokenizer-分词   分词器的工作就是分解文本流成词(tokens).在这个文本中,每一个token都是这些字符的一个子序列.一个分析器(analyzer)必须知道它所配置的字段,但是tokenizer不需要,分词器(tokenizer)从一个字符流(reader)读取数据,生成一个Token对象(TokenStream)的序列.   输入流中的一些字符可能会被丢弃,如空格和一...

weixin_30532837的博客 870
上一篇: 简述 Java 图形用户界面设计 (Swing)
下一篇: 小议局部类 (内部类, Inner Class)
边城狂人
博客等级 码龄23年 139粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值