语言: 中文
数据集:
示例:
- 问题: "中兴大学在哪里?"
上下文: "国立中兴大学(简称兴大、NCHU),是位于台中的一所高等教育机构。中兴大学以农业科学、农业经济学、兽医、生命科学、转译医学、生医工程、生物科技、绿色科技等研究领域见长。近年中兴大学与台中荣民总医院、彰化师范大学、中国医药大学等机构合作,聚焦于癌症医学、免疫医学及医学工程三项领域,将实验室成果逐步应用到临床上,未来「卫生福利部南投医院中兴院区」将改为「国立中兴大学医学院附设医院」。兴大也与台中市政府合作,签订合作意向书,共同推动数位文化、智慧城市等面相带动区域发展。"
- 问题: "我住在哪里?"
上下文: "我叫翰承,我住在台中。"
中文问答BERT基础模型
这是基于bert-base-chinese模型,使用DRCD数据集进行微调的版本。该模型专为问答任务训练,能够处理问题-答案对。
使用方法
在Transformers中使用
from transformers import BertTokenizerFast, BertForQuestionAnswering, pipeline
model_name = "NchuNLP/Chinese-Question-Answering"
tokenizer = BertTokenizerFast.from_pretrained(model_name)
model = BertForQuestionAnswering.from_pretrained(model_name)
nlp = pipeline('question-answering', model=model, tokenizer=tokenizer)
QA_input = {
'question': '中兴大学在哪里?',
'context': '国立中兴大学(简称兴大、NCHU),是位于台中的一所高等教育机构。中兴大学以农业科学、农业经济学、兽医、生命科学、转译医学、生医工程、生物科技、绿色科技等研究领域见长。近年中兴大学与台中荣民总医院、彰化师范大学、中国医药大学等机构合作,聚焦于癌症医学、免疫医学及医学工程三项领域,将实验室成果逐步应用到临床上,未来「卫生福利部南投医院中兴院区」将改为「国立中兴大学医学院附设医院」。兴大也与台中市政府合作,签订合作意向书,共同推动数位文化、智慧城市等面相带动区域发展。'
}
res = nlp(QA_input)
{'score': 1.0, 'start': 21, 'end': 23, 'answer': '台中'}
inputs = tokenizer(query, text, return_tensors="pt",padding=True, truncation=True, max_length=512, stride=256)
outputs = model(**inputs)
sequence_ids = inputs.sequence_ids()
mask = [i != 1 for i in sequence_ids]
mask[0] = False
mask = torch.tensor(mask)[None]
start_logits[mask] = -10000
end_logits[mask] = -10000
start_probabilities = torch.nn.functional.softmax(start_logits, dim=-1)[0]
end_probabilities = torch.nn.functional.softmax(end_logits, dim=-1)[0]
scores = start_probabilities[:, None] * end_probabilities[None, :]
max_index = scores.argmax().item()
start_index = max_index // scores.shape[1]
end_index = max_index % scores.shape[1]
inputs_with_offsets = tokenizer(query, text, return_offsets_mapping=True)
offsets = inputs_with_offsets["offset_mapping"]
start_char, _ = offsets[start_index]
_, end_char = offsets[end_index]
answer = text[start_char:end_char]
result = {
"answer": answer,
"start": start_char,
"end": end_char,
"score": scores[start_index, end_index],
}
print(result)
作者
韩承宇: boy19990222@gmail.com
范耀中: yfan@nchu.edu.tw
关于我们
中兴大学自然语言处理实验室的研究方向围绕深度学习技术在文本数据挖掘(Text Mining)与自然语言处理(Natural Language Processing)方面的应用。目前实验室成员的研究主题侧重于机器阅读理解(Machine Reading Comprehension)以及自然语言生成(Natural Language Generation)两大方向。
更多信息
欲了解更多关于中兴大学自然语言处理实验室的信息,请访问我们的实验室在线演示仓库和GitHub页面。