list(map(tokenizer.tokenize, text))
这个用法比较重要,可以做subtokenizer和raw_text的对比和复原
text2tokens = self.tokenizer.tokenize(text, add_special_tokens=self.add_special_tokens)
text_ = text.split(' ')
subwords = list(map(tokenizer.tokenize, text_))
class Preprocessor(object):
def init(self, tokenizer):
super(Preprocessor, self).init()
self.tokenizer = tokenizer
self.add_special_tokens = True
def get_ent2token_spans(self, text, entity_list):"""实体列表转为token_spansArgs:text (str): 原始文本entity_list (list): [(start, end, ent_type),(start, end, ent_type)...]"""ent2token_spans = []inputs = self.tokenizer(text, add_special_tokens=True, return_offsets_mapping=True)token2char_span_mapping = inputs["offset_mapping"]text2tokens = self.tokenizer.tokenize(text, add_special_tokens=self.add_special_tokens)text_ = text.split(' ')subwords = list(map(tokenizer.tokenize, text_))toks, index = get_index(text2tokens)for en_span in entity_list:if en_span[0]!=0:subh = sum([len(i) for i in subwords[:(en_span[0] )]])subt = sum([len(i) for i in subwords[:(en_span[0]+1)]])else:subh = sum([len(i) for i in subwords[:(en_span[0] )]])subt = sum([len(i) for i in subwords[:(en_span[0]+1)]])if en_span[1]!=0:objh = sum([len(i) for i in subwords[:(en_span[1])]])objt = sum([len(i) for i in subwords[:(en_span[1]+1)]])else:objh = sum([len(i) for i in subwords[:(en_span[1] )]])objt = sum([len(i) for i in subwords[:(en_span[1]+1)]])start_index = (subh + 1, subt + 1)end_index = (objh + 1, objt + 1)token_span = (start_index, end_index, en_span[2])ent2token_spans.append(token_span)return ent2token_spans
list(map(tokenizer.tokenize, text))相关推荐
- tokenizer.encode() 与 tokenizer.tokenize()对比,言简意赅 转 高人讲学
tokenizer.encode()_不知道起什么名字-CSDN博客_tokenizer.encode tokenizer.encode("说你跑的挺远",add_special_ ...
- tokenizer.encode、tokenizer.tokenize、tokenizer.encode_plus的用法差异
一.tokenizer.encode和tokenizer.tokeninze tokenizer.tokenize :先分词,再转成id,直接输出tensor tokenizer.encode :直接 ...
- 【transformers】tokenizer用法(encode、encode_plus、batch_encode_plus等等)
tranformers中的模型在使用之前需要进行分词和编码,每个模型都会自带分词器(tokenizer),熟悉分词器的使用将会提高模型构建的效率. string tokens ids 三者转换 str ...
- BERT中的Tokenizer说明
BERT中的Tokenizer说明 预训练BERT的Tokenizer有着强大的embedding的表征能力,基于BERT的Tokenizer的特征矩阵可以进行下游任务,包括文本分类,命名实体识别,关 ...
- bert第三篇:tokenizer
文章目录 tokenizer基本含义 bert里涉及的tokenizer BasicTokenzer wordpiecetokenizer FullTokenzier PretrainTokenize ...
- transformers库使用--tokenizer
在我使用transformers进行预训练模型学习及微调的时候,需要先对数据进行预处理,然后经过处理过的数据才能送进bert模型里,这个过程中使用的主要的工具就是tokenizer.通过与相关预训练模 ...
- 深度学习-Tensorflow2基础知识
文章目录 1.使用tensorflow_datasets 1.1 加载数据集 1.2 查看数据集中某些样本的信息 1.3 将样本标准化 1.4 将样本打乱.分批 1.5 查看最终的训练样本 2.将已有 ...
- [深度学习] 自然语言处理--- 基于Keras Bert使用(上)
1. bert ---- keras keras_bert 是 CyberZHG 封装好了Keras版的Bert,可以直接调用官方发布的预训练权重. github:https://github.co ...
- 电力现货市场现货需求_现货与情绪:现货铜市场中的自然语言处理与情绪评分
电力现货市场现货需求 Note from Towards Data Science's editors: While we allow independent authors to publish a ...
- 王阳明心学 量子物理_量子物理学论文的文本分类
王阳明心学 量子物理 Have you ever been looking for the most recent research findings in machine learning or A ...
最新文章
- 在Spring Boot中使用 @ConfigurationProperties 注解 (二十六)
- 转帖:从C51的指针到病毒-c51软复位,经典,分析透彻
- [BZOJ 1012] 最大数maxnumber
- ubuntu的Unity功能安装
- jquery+bootstrap实现tab切换, 每次切换时都请求数据, 点击提交分别向不同的地址提交数据...
- 音视频技术开发周刊 | 155
- java ee cdi_Java EE6 CDI,命名组件和限定符
- 电商视觉:焦点图的万能构图模板
- Parasoft C++test使用教程:执行测试用例(上)
- 动画中英文对照表(09.24)
- 软件设计师教程第5版和第4版内容对比
- 操作 神通数据库_神通数据库OGDCProvider使用手册.PDF
- 二维vector初始化,赋值
- 计算机台式电源3c号,电源3C认证流程详情介绍
- 树莓派pico--PIO入门
- 目前开发人工日多少钱_行内人解读开发一个App需要多少钱?-今日头条
- 深度强化学习中的对抗攻击和防御
- css强制换行和强制不换行
- 虾皮运营之不实折扣有多严重?堪比双十一 虾皮运营技巧
- 某大厂程序员炫耀:来新加坡后,每天最多工作五六个小时,家庭年收入150万人民币,已躺平!...
热门文章
- 阿里云移动测试平台使用教程
- java实现角色+武器攻击小游戏
- 1324. Print Words Vertically**
- mysql大于等于between比较_MySQL范围查询优化,Between与大于等于对比及优化
- 键盘哪个键是锁定计算机,键盘锁是哪个键 锁键盘的是哪个键 - 云骑士一键重装系统...
- html5不用reload重置网页,refresh和reload
- 二进制转十六进制(参考XYJ)
- 本地telnet使用
- 用Java写倒叙数字输出
- 找不到服务器或dsn错误,win7浏览网页提示“找不到服务器或DNS错误”原因及解决方法...