自然语言处理实践Task6
基于Bert的文本分类
Bert Pretrain
class WhitespaceTokenizer(object):"""WhitespaceTokenizer with vocab."""def __init__(self, vocab_file):self.vocab = load_vocab(vocab_file)self.inv_vocab = {v: k for k, v in self.vocab.items()}def tokenize(self, text):split_tokens = whitespace_tokenize(text)output_tokens = []for token in split_tokens:if token in self.vocab:output_tokens.append(token)else:output_tokens.append("[UNK]")return output_tokensdef convert_tokens_to_ids(self, tokens):return convert_by_vocab(self.vocab, tokens)def convert_ids_to_tokens(self, ids):return convert_by_vocab(self.inv_vocab, ids)def create_segments_from_document(document, max_segment_length):"""Split single document to segments according to max_segment_length."""assert len(document) == 1document = document[0]document_len = len(document)index = list(range(0, document_len, max_segment_length))other_len = document_len % max_segment_lengthif other_len > max_segment_length / 2:index.append(document_len)segments = []for i in range(len(index) - 1):segment = document[index[i]: index[i+1]]segments.append(segment)return segments(masked_lm_loss, masked_lm_example_loss, masked_lm_log_probs) = get_masked_lm_output(bert_config, model.get_sequence_output(), model.get_embedding_table(),masked_lm_positions, masked_lm_ids, masked_lm_weights)total_loss = masked_lm_loss
详细配置
{"hidden_size": 256,"hidden_act": "gelu","initializer_range": 0.02,"vocab_size": 5981,"hidden_dropout_prob": 0.1,"num_attention_heads": 4,"type_vocab_size": 2,"max_position_embeddings": 256,"num_hidden_layers": 4,"intermediate_size": 1024,"attention_probs_dropout_prob": 0.1
}
def convert_tf_checkpoint_to_pytorch(tf_checkpoint_path, bert_config_file, pytorch_dump_path):# Initialise PyTorch modelconfig = BertConfig.from_json_file(bert_config_file)print("Building PyTorch model from configuration: {}".format(str(config)))model = BertForPreTraining(config)# Load weights from tf checkpointload_tf_weights_in_bert(model, config, tf_checkpoint_path)# Save pytorch-modelprint("Save PyTorch model to {}".format(pytorch_dump_path))torch.save(model.state_dict(), pytorch_dump_path)
Bert Finetune
sequence_output, pooled_output = \self.bert(input_ids=input_ids, token_type_ids=token_type_ids)if self.pooled:reps = pooled_output
else:reps = sequence_output[:, 0, :] # sen_num x 256if self.training:reps = self.dropout(reps)
自然语言处理实践Task6相关推荐
- python documents in chinese_基于 Python 的简单自然语言处理实践
基于 Python 的简单自然语言处理 Twenty News Group 语料集处理 20 Newsgroup 数据集包含了约 20000 篇来自于不同的新闻组的文档,最早由 Ken Lang 搜集 ...
- DataWhale第21期组队学习自然语言处理实践(知识图谱)task4— 用户输入->知识库的查询语句
参考来源:https://github.com/datawhalechina/team-learning-nlp/blob/master/KnowledgeGraph_Basic/task04.md# ...
- r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...
斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger), ...
- 《自然语言处理实践——聊天机器人技术原理与应用》(王昊奋)简要笔记(全)
第一章 概述 1.对话系统分类 基于实现方式--检索式.生成式 基于功能--问答系统.面向任务的对话系统.闲聊系统.主动推荐系统. 2.框架 自动语音识别--自然语言理解--对话管理(Web,社区问答 ...
- PyTorch深度学习实战 | 迁移学习与自然语言处理实践
01.文章任务 从提供的金融文本中识别出现的未知金融实体,包括金融平台名.企业名.项目名称及产品名称.持有金融牌照的银行.证券.保险.基金等机构.知名的互联网企业如腾讯.淘宝.京东等和训练集中出现的实 ...
- 自然语言处理实践Task5
使用gensim训练word2vec import logging import randomimport numpy as np import torchlogging.basicConfig(le ...
- 自然语言处理实践Task4
FastText FastText通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作. FastText是一个三层的神经网络,输入 ...
- 自然语言处理实践Task3
One-hot 这里的One-hot与数据挖掘任务中的操作是一致的,即将每一个单词使用一个离散的向量表示.具体将每个字/词编码一个索引,然后根据索引进行赋值. One-hot表示方法的例子如下: 句子 ...
- 自然语言处理实践Task2
一.读取训练数据 # sep设置分割符 # nrows设置读取的行数 train_df = pd.read_csv('./data/train_set.csv', sep='\t', nrows=10 ...
最新文章
- 爬取数据解决方案- 每页打开+单个查询
- node中的流的介绍(Stream)
- if else 简写_15+ JS简写骚操作,让你的代码“秀”起来??
- 超级好用 将html字符串,转化为纯文本
- Ajax进入ERROR的部分条件总结
- 利用melendy插入参考文献_如何利用mendeley搞定SCI论文参考文献,这篇一定要看
- 一个类可以实现多个接口吗_java中接口的概念
- java编写一个邮件程序显示收件箱中所有的邮件列表_如何使用JavaMail获取邮件帐户中的可用文件夹列表...
- python面试题之Python是如何进行类型转换的
- 阿里云服务器Ubuntu16.04安装Anaconda(python3.6)和本地远程连接jupyter
- 【无向图求最小割集】
- ios 博客及论坛整理
- linux用命令下载图片,巧用linux命令做图片下载器
- R语言自学笔记-----数据转换
- JAVA毕设项目公立医院绩效考核系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
- 那些从阿里离职的人,凭什么占据了中国互联网行业的半壁江山?
- 第十一届蓝桥杯 ——成绩统计
- php sdk包,CloudXNS API PHP SDK
- 陀螺科技十周年 | 和小π一起探索“心有猛虎,快意江湖”的故事……
- 【Pandas总结】第一节 Pandas 简介与Series,DataFrame的创建