使用Bert对含有数组、字母的中文文本分词(每个字母、数字都分词)【最细力度】

    序列标注任务 BERT 分词器可能会导致标注偏移,    用 char-level 来 tokenize。

import torch
from transformers import BertTokenizer, BertModel


def fine_grade_tokenize(raw_text, tokenizer):
    """
    序列标注任务 BERT 分词器可能会导致标注偏移,
    用 char-level 来 tokenize
    """
    tokens = []

    for _ch in raw_text:
        if _ch in [' ', '\t', '\n']:
            tokens.append('[BLANK]')
        else:
            if not len(tokenizer.tokenize(_ch)):
                tokens.append('[INV]')
            else:
                tokens.append(_ch)

    return tokens


sentence = "62号汽车故障报告综合情况:故障现象:加速后,丢开油门,发动机熄火。"

len_sentence = len(sentence)

print("len_sentence = ", len_sentence)

bert_tokenizer = BertTokenizer.from_pretrained('./pretrained_models/bert-base-chinese/vocab.txt')

tokens = fine_grade_tokenize(sentence, bert_tokenizer)

print(&#

你可能感兴趣的:(#,NLP/词向量_预训练模型,bert,人工智能,深度学习)