这个用法比较重要,可以做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))相关推荐

  1. tokenizer.encode() 与 tokenizer.tokenize()对比,言简意赅 转 高人讲学

    tokenizer.encode()_不知道起什么名字-CSDN博客_tokenizer.encode tokenizer.encode("说你跑的挺远",add_special_ ...

  2. tokenizer.encode、tokenizer.tokenize、tokenizer.encode_plus的用法差异

    一.tokenizer.encode和tokenizer.tokeninze tokenizer.tokenize :先分词,再转成id,直接输出tensor tokenizer.encode :直接 ...

  3. 【transformers】tokenizer用法(encode、encode_plus、batch_encode_plus等等)

    tranformers中的模型在使用之前需要进行分词和编码,每个模型都会自带分词器(tokenizer),熟悉分词器的使用将会提高模型构建的效率. string tokens ids 三者转换 str ...

  4. BERT中的Tokenizer说明

    BERT中的Tokenizer说明 预训练BERT的Tokenizer有着强大的embedding的表征能力,基于BERT的Tokenizer的特征矩阵可以进行下游任务,包括文本分类,命名实体识别,关 ...

  5. bert第三篇:tokenizer

    文章目录 tokenizer基本含义 bert里涉及的tokenizer BasicTokenzer wordpiecetokenizer FullTokenzier PretrainTokenize ...

  6. transformers库使用--tokenizer

    在我使用transformers进行预训练模型学习及微调的时候,需要先对数据进行预处理,然后经过处理过的数据才能送进bert模型里,这个过程中使用的主要的工具就是tokenizer.通过与相关预训练模 ...

  7. 深度学习-Tensorflow2基础知识

    文章目录 1.使用tensorflow_datasets 1.1 加载数据集 1.2 查看数据集中某些样本的信息 1.3 将样本标准化 1.4 将样本打乱.分批 1.5 查看最终的训练样本 2.将已有 ...

  8. [深度学习] 自然语言处理--- 基于Keras Bert使用(上)

    1. bert  ---- keras keras_bert 是 CyberZHG 封装好了Keras版的Bert,可以直接调用官方发布的预训练权重. github:https://github.co ...

  9. 电力现货市场现货需求_现货与情绪:现货铜市场中的自然语言处理与情绪评分

    电力现货市场现货需求 Note from Towards Data Science's editors: While we allow independent authors to publish a ...

  10. 王阳明心学 量子物理_量子物理学论文的文本分类

    王阳明心学 量子物理 Have you ever been looking for the most recent research findings in machine learning or A ...

最新文章

  1. 在Spring Boot中使用 @ConfigurationProperties 注解 (二十六)
  2. 转帖:从C51的指针到病毒-c51软复位,经典,分析透彻
  3. [BZOJ 1012] 最大数maxnumber
  4. ubuntu的Unity功能安装
  5. jquery+bootstrap实现tab切换, 每次切换时都请求数据, 点击提交分别向不同的地址提交数据...
  6. 音视频技术开发周刊 | 155
  7. java ee cdi_Java EE6 CDI,命名组件和限定符
  8. 电商视觉:焦点图的万能构图模板
  9. Parasoft C++test使用教程:执行测试用例(上)
  10. 动画中英文对照表(09.24)
  11. 软件设计师教程第5版和第4版内容对比
  12. 操作 神通数据库_神通数据库OGDCProvider使用手册.PDF
  13. 二维vector初始化,赋值
  14. 计算机台式电源3c号,电源3C认证流程详情介绍
  15. 树莓派pico--PIO入门
  16. 目前开发人工日多少钱_行内人解读开发一个App需要多少钱?-今日头条
  17. 深度强化学习中的对抗攻击和防御
  18. css强制换行和强制不换行
  19. 虾皮运营之不实折扣有多严重?堪比双十一 虾皮运营技巧
  20. 某大厂程序员炫耀:来新加坡后,每天最多工作五六个小时,家庭年收入150万人民币,已躺平!...

热门文章

  1. 阿里云移动测试平台使用教程
  2. java实现角色+武器攻击小游戏
  3. 1324. Print Words Vertically**
  4. mysql大于等于between比较_MySQL范围查询优化,Between与大于等于对比及优化
  5. 键盘哪个键是锁定计算机,键盘锁是哪个键 锁键盘的是哪个键 - 云骑士一键重装系统...
  6. html5不用reload重置网页,refresh和reload
  7. 二进制转十六进制(参考XYJ)
  8. 本地telnet使用
  9. 用Java写倒叙数字输出
  10. 找不到服务器或dsn错误,win7浏览网页提示“找不到服务器或DNS错误”原因及解决方法...