项目介绍:et5-typos-corrector
et5-typos-corrector 是一个专为韩语开发的拼写校正器,它基于 ETRI 的 ET5 模型进行微调,主要用于韩语口语的拼写校正。此外,该项目还利用了由“모두의 말뭉치”(韩国语料库)的拼写校正数据集来训练和优化模型。
项目背景
et5-typos-corrector 的核心是由 ETRI 开发的 ET5 预训练语言模型。这款模型在拼写校正领域尤其适合,因为它结合了丰富的语料资源和先进的自然语言处理技术。通过微调,项目针对口语体韩语的特殊拼写错误进行了优化,能够更加准确和快捷地进行文本校正。
数据集来源
该项目使用了“모두의 말뭉치”中的拼写校正数据集作为基础,确保模型训练时拥有足够的高质量数据,这些数据是从大量韩语文本中提取和整理而成,专为拼写错误识别和校正设计。
数据预处理
在数据处理环节,项目进行了几项重要的预处理步骤,以提高模型的校正效率和准确性:
- 删除特定的标点符号,如逗号和句号。
- 移除空值或无效字符串。
- 过滤掉非常短的句子(长度小于等于2)。
- 删除包含特定标签,如名字标签的单词,但保留句子结构。
经过这些处理的总数据对有318,882对。
使用方法
et5-typos-corrector 项目可以通过 Python 代码方便地加载和使用:
基础使用
首先需要加载 T5 模型及其对应的分词器:
from transformers import T5ForConditionalGeneration, T5Tokenizer
model = T5ForConditionalGeneration.from_pretrained("j5ng/et5-typos-corrector")
tokenizer = T5Tokenizer.from_pretrained("j5ng/et5-typos-corrector")
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = model.to(device)
input_text = "아늬 진짜 무ㅓ하냐고"
input_encoding = tokenizer("맞춤법을 고쳐주세요: " + input_text, return_tensors="pt")
input_ids = input_encoding.input_ids.to(device)
attention_mask = input_encoding.attention_mask.to(device)
output_encoding = model.generate(
input_ids=input_ids,
attention_mask=attention_mask,
max_length=128,
num_beams=5,
early_stopping=True,
)
output_text = tokenizer.decode(output_encoding[0], skip_special_tokens=True)
print(output_text)
使用 Transformer Pipeline
项目还可以通过 Transformer 提供的管道工具实现更简单的调用:
from transformers import T5ForConditionalGeneration, T5Tokenizer, pipeline
model = T5ForConditionalGeneration.from_pretrained('j5ng/et5-typos-corrector')
tokenizer = T5Tokenizer.from_pretrained('j5ng/et5-typos-corrector')
typos_corrector = pipeline(
"text2text-generation",
model=model,
tokenizer=tokenizer,
device=0 if torch.cuda.is_available() else -1,
framework="pt",
)
input_text = "완죤 어이업ㅅ네진쨬ㅋㅋㅋ"
output_text = typos_corrector("맞춤법을 고쳐주세요: " + input_text,
max_length=128,
num_beams=5,
early_stopping=True)[0]['generated_text']
print(output_text)
总结
et5-typos-corrector 项目凭借其强大的机器学习算法和丰富的语料支持,为韩语使用者提供了高效的拼写校正服务。这一工具不仅帮助减少了日常书写中的错误,也为更广泛的语言研究与应用提供了基础支持。