在编写词法分析器(Lexer)或语法分析器(Parser)的时候,除了Lexer和Parser这两个词会经常使用外,tokenize和 tokenizer也会经常出现,基本上所有涉及到词法解析的源码都会用到tokenize。
它的命名来源于使用英文的开发者,否则让我这个习惯使用中文的人去想这个命名,我可能会用其它简单的词来代替,不会这么形象化,所以啊,语言文化的不同,可能会导致思维方式的不同啊,所以中国人的思维方式和西方人的思维方式肯定是不同的,让他们来理解我们的语言可能也很费解。
不管怎么说,好的东西是应该学习和借鉴的,tokenize这个词使用得如此频繁,肯定有它的意义,那到底这个词怎么翻译?怎么理解?在邱仲潘译的《Mastering Java 2》有这儿一段:
StreamTokenizer类根据用户定义的规则,从输入流中提取可识别的子串和标记符号,这个过程称为令牌化 (
tokenizing),因为流简化为了令牌符号。令牌(
token)通常代表关键字、变量名、字符串、直接量和大括号等 语法标点。
参考邱仲潘的这段译文,可以这样翻译:
token:令牌
tokenize:令牌化
tokenizer:令牌解析器
而我看到的另一种翻译是:token可以翻译为“标记”,tokenize可以翻译为“标记解析”或“解析标记”,tokenizer可以翻译为“标记解析器”
我的理解是tokenize是负责把代码解析为一个个的“串”,而Paser是根据这些“串”的前后序列关系来生成相应的语法结构。用令牌好像更形象一些,不过总觉得听起来很生硬,而翻译成“标记”,范围又狭窄了一些。我也找不到一个更适合的词来翻译了,总之理解意思最重要。
分享到:
相关推荐
这个"opennlp-tools-1.3.0.gz"文件是OpenNLP的1.3.0版本,它包含了处理自然语言所需的各种算法和模型。尽管它的大小可能不大,但其功能强大且设计精良,能够满足多种NLP任务的需求。 在描述中提到,该压缩文件的...
为c++实现Tokenizer,就像java里面的string tokenizer
5. **API接口**:提供简单易用的JavaScript API,如`tokenizer.tokenize(text)`用于将文本分解成标记数组。 6. **文档与示例**:开源项目通常会提供详细的使用文档和示例代码,帮助开发者快速上手和理解库的功能。 ...
Python中的`tokenizer`库可能基于Python标准库中的`tokenize`模块,这个模块提供了按照Python语法进行词法分析的功能,可以用来识别代码中的关键字、标识符、字符串、数字等。然而,`tokenizer-1.0.3-py2.py3-none-...
data Field(tokenize=spacy", tokenizer_Language=r'en) ------------ 可以先下载资源包, 解压,然后把命令换成下面这种 data Field(tokenize="Spacy', tokenizer_Language=r"F: \ tmp Men_core -web_sm-2.3.0\en_...
tokenizer模块在CPython中提供了`tokenize`函数,它读取一个输入流(通常是字符串或文件),并返回一个生成器,生成的每个元素都是一个元组,包含令牌类型、令牌值、开始行号、开始列号、结束行号和结束列号。...
prompt$ sedsed --help usage: sedsed OPTION [-e sedscript] ... -t, --tokenize script tokenizer, prints extensive command by command information -H, --htmlize converts sed script to a colorful HTML page
`tokenizer_tools` 库是一个专门用于文本处理和分词的工具集,它在自然语言处理(NLP)领域中非常常见。NLP是计算机科学的一个分支,专注于使计算机理解和生成人类语言。在这个库中,主要关注的是将连续的文本分割成...
tokens = tokenizer_tools.tokenize("这是一段示例文本") ``` **总结** `tokenizer_tools-0.8.2-py2.py3-none-any.whl` 是一个在PyPI上发布的跨Python版本的NLP工具包,主要功能是文本分词。开发者可以轻松地通过`...
在这个项目中,开发者可能想要了解如何在自定义技能链中集成Tokenizer,以便在搜索索引建立时对输入文本进行预处理,提升搜索的精确性和效率。 描述中提到的“用于认知搜索的微软云平台示例技能代码编程”,进一步...
LLT::Tokenizer 用于标记拉丁文本的灵活服务。 安装 将此行添加到应用程序的 Gemfile 中: gem 'llt-tokenizer' 然后执行: ... Tokenizer 在创建或调用 #tokenize 时有几个选项: # shifting d
It utilizes CFStringTokenizer to tokenize strings into words. Android The implementation is based on TinySegmenter. It is lightweight word segmenter which works without dictionaries. Getting started $...
在定义文本字段时,需要指定tokenize方式和tokenizer语言。 问题6:定义标签字段 在进行文本情感分析时,需要定义标签字段,可以使用torchtext库,例如: LABEL = data.LabelField(dtype=torch.float) 在定义...
使用OpenNLP进行英文分词,需要加载预先训练好的模型文件,然后调用`opennlp.tools.tokenize.Tokenizer`类的方法: ```java import opennlp.tools.tokenize.SimpleTokenizer; // 创建分词器 SimpleTokenizer ...
It demonstrates the use of punkt tokenizer." sentences = nltk.sent_tokenize(text) words = [nltk.word_tokenize(sentence) for sentence in sentences] print(sentences) print(words) ``` 这段代码首先下载...
POS-tokenizer 有时您只需要运行简单的 SQL 命令。 有时您想将它们组合起来并确保执行顺利。 ##安装 使用 npm: $ npm install --save pos-tokenizer 在 NodeJs/io.js 中 var pos_tokenize= require('../...
Nodejs和Javascript中越南语的分词器。 安装方式 通过NPM npm install node-vntokenizer --save 通过鲍尔 bower install tokenizer --save 样本 var Tokenizer = require ( 'node-vntokenizer' ) ; var token = ...
- 使用Tokenizer对文本数据进行tokenize,并根据模型要求添加特殊token(如`[CLS]`和`[SEP]`)。 - 将tokenized文本转换为模型输入的形式,如input_ids、attention_mask等。 4. **构建模型**: - 在加载的BERT...
tokenize和split_sentences是可配置的函数,它们调用下面定义的标记器或句子分割器之一。 它们具有明智的默认设置,但是您可以覆盖通过调用set_tokenizer(func)或set_sentence_splitter(func)从下面的列表(或其他...
5. **保留空白**:虽然大多数词法分析器会忽略空格和制表符,但 `Tokenize.jl` 可以选择保留这些空白信息,这对于保持代码的原始格式非常重要。 6. **处理注释**:`Tokenize.jl` 能够正确处理单行和多行注释,将其...