task6 基于深度学习的文本分类

基于Bert的文本分类
Bert Pretrain预训练过程使用了Google基于Tensorflow发布的BERT源代码。首先从原始文本中创建训练数据,由于本次比赛的数据都是ID,这里重新建立了词表,并且建立了基于空格的分词器。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_tokens def 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)预训练由于去除了NSP预训练任务,因此将文档处理多个最大长度为256的段,如果最后一个段的长度小于256/2则丢弃。每一个段执行按照BERT原文中执行掩码语言模型,然后处理成tfrecord格式。def create_segments_from_document(document, max_segme

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页