649453932 / Bert-Chinese-Text-Classification-Pytorch

使用Bert,ERNIE,进行中文文本分类
MIT License
3.97k stars 896 forks source link

utils.py文件中数据处理缺少[SEP] #119

Open jamestch opened 2 years ago

jamestch commented 2 years ago

您好,关于utils.py中build_dataset方法中对输入文本进行pading部分: def load_dataset(path, pad_size=32): contents = [] with open(path, 'r', encoding='utf-8') as f: for line in tqdm(f): lin = line.strip() if not lin: continue content, label = lin.split('\t') token = config.tokenizer.tokenize(content) token = [CLS] + token seq_len = len(token) mask = [] token_ids = config.tokenizer.convert_tokens_to_ids(token)

            if pad_size:
                if len(token) < pad_size:
                    mask = [1] * len(token_ids) + [0] * (pad_size - len(token))
                    token_ids = token_ids + ([0] * (pad_size - len(token)))
                else:
                    mask = [1] * pad_size
                    token_ids = token_ids[:pad_size]
                    seq_len = pad_size

正常BERT输入的格式为:[CLS] + tokens + [SEP] + padding 但根据上述代码数据处理后的格式为:[CLS] + tokens + padding 其中少了[SEP],请问如果少了这个句子结尾符,不影响最终的文本分类吗?

Geministudents commented 2 years ago

目前我的实验的结果,有没有SEP的效果区别不大,因为这个任务是文本分类,只要有CLS+PAD就可以,如果是问答系统或者是什么文本匹配的任务,则一定要有SEP将两个句子分割开来。