
# bart4csc-base-chinese
---


## README([From Huggingface](https://huggingface.co/shibing624/bart4csc-base-chinese))

---
language:
- zh
tags:
- bart
- pytorch
- zh
- Text2Text-Generation
license: apache-2.0
widget:
- text: 少先队员因该为老人让坐
datasets:
- shibing624/CSC
pipeline_tag: text2text-generation
---

# Bart for Chinese Spelling Correction(bart4csc) Model
BART中文拼写纠错模型

`bart4csc-base-chinese` evaluate SIGHAN2015 test data：

Sentence Level: acc:0.6845, precision:0.6984, recall:0.6354, f1:0.6654

case:

|input_text|pred|
|:-- |:--- |
|辰导中引述她的话说：核子间题的解决之道系于克什米尔纷争。|报导中引述她的话说：核子问题的解决之道系于克什米尔纷争。|
|报导并末说明事故发生的原因。|报导并未说明事故发生的原因。|

训练使用了SIGHAN+Wang271K中文纠错数据集，在SIGHAN2015的测试集上达到接近SOTA水平。


## Usage

本项目开源在文本生成项目：[textgen](https://github.com/shibing624/textgen)，可支持Bart模型，通过如下命令调用：

Install package:
```shell
pip install -U textgen
```

```python
from paddlenlp.transformers import BertTokenizerFast
from textgen import BartSeq2SeqModel

tokenizer = BertTokenizerFast.from_pretrained('shibing624/bart4csc-base-chinese')
model = BartSeq2SeqModel(
    encoder_type='bart',
    encoder_decoder_type='bart',
    encoder_decoder_name='shibing624/bart4csc-base-chinese',
    tokenizer=tokenizer,
    args={"max_length": 128, "eval_batch_size": 128})
sentences = ["少先队员因该为老人让坐"]
print(model.predict(sentences))
# ['少先队员应该为老人让座']
```


模型文件组成：
```
bart4csc-base-chinese
    ├── config.json
    ├── model_args.json
    ├── pytorch_model.bin
    ├── special_tokens_map.json
    ├── tokenizer_config.json
    ├── spiece.model
    └── vocab.txt
```


### 训练数据集
#### SIGHAN+Wang271K中文纠错数据集


| 数据集 | 语料 | 下载链接 | 压缩包大小 |
| :------- | :--------- | :---------: | :---------: |
| **`SIGHAN+Wang271K中文纠错数据集`** | SIGHAN+Wang271K(27万条) | [百度网盘（密码01b9）](https://pan.baidu.com/s/1BV5tr9eONZCI0wERFvr0gQ)| 106M |
| **`原始SIGHAN数据集`** | SIGHAN13 14 15 | [官方csc.html](http://nlp.ee.ncu.edu.tw/resource/csc.html)| 339K |
| **`原始Wang271K数据集`** | Wang271K | [Automatic-Corpus-Generation dimmywang提供](https://github.com/wdimmy/Automatic-Corpus-Generation/blob/master/corpus/train.sgml)| 93M |


SIGHAN+Wang271K中文纠错数据集，数据格式：
```json
[
    {
        "id": "B2-4029-3",
        "original_text": "晚间会听到嗓音，白天的时候大家都不会太在意，但是在睡觉的时候这嗓音成为大家的恶梦。",
        "wrong_ids": [
            5,
            31
        ],
        "correct_text": "晚间会听到噪音，白天的时候大家都不会太在意，但是在睡觉的时候这噪音成为大家的恶梦。"
    },
]
```


- 如果需要训练Bart模型，请参考[https://github.com/shibing624/textgen/blob/main/examples/seq2seq/training_bartseq2seq_zh_demo.py](https://github.com/shibing624/textgen/blob/main/examples/seq2seq/training_bartseq2seq_zh_demo.py)
- 了解更多纠错模型，请移步：[https://github.com/shibing624/pycorrector](https://github.com/shibing624/pycorrector)

## Citation

```latex
@software{textgen,
  author = {Xu Ming},
  title = {textgen: Implementation of Text Generation models},
  year = {2022},
  url = {https://github.com/shibing624/textgen},
}
```



## Model Files

- [README.md](https://paddlenlp.bj.bcebos.com/models/community/shibing624/bart4csc-base-chinese/README.md) (3.4 KB)

- [config.json](https://paddlenlp.bj.bcebos.com/models/community/shibing624/bart4csc-base-chinese/config.json) (1.7 KB)

- [model_state.pdparams](https://paddlenlp.bj.bcebos.com/models/community/shibing624/bart4csc-base-chinese/model_state.pdparams) (443.6 MB)

- [special_tokens_map.json](https://paddlenlp.bj.bcebos.com/models/community/shibing624/bart4csc-base-chinese/special_tokens_map.json) (125.0 B)

- [tokenizer_config.json](https://paddlenlp.bj.bcebos.com/models/community/shibing624/bart4csc-base-chinese/tokenizer_config.json) (557.0 B)

- [vocab.txt](https://paddlenlp.bj.bcebos.com/models/community/shibing624/bart4csc-base-chinese/vocab.txt) (107.0 KB)


[Back to Main](../../)