当前位置:   article > 正文

预训练模型mlm阅读理解任务_mlm模型做阅读理解

mlm模型做阅读理解

bert、roberta、ernie在中文mlm任务上效果查看

  1. # -*- coding: utf-8 -*-
  2. import torch
  3. from transformers import BertTokenizer, BertForMaskedLM
  4. def get_mlm_model(list_):
  5. ret = []
  6. for path in list_:
  7. tokenizer = BertTokenizer.from_pretrained(path)
  8. model = BertForMaskedLM.from_pretrained(path)
  9. ret.append((path, tokenizer, model))
  10. return ret
  11. def gen_text(input_tx, tokenizer, model):
  12. tokenized_text = tokenizer.tokenize(input_tx)
  13. indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)
  14. tokens_tensor = torch.tensor([indexed_tokens])
  15. segments_tensors = torch.tensor([[0] * len(tokenized_text)])
  16. with torch.no_grad():
  17. outputs = model(tokens_tensor, token_type_ids=segments_tensors)
  18. predictions = outputs[0]
  19. predicted_index = [torch.argmax(predictions[0, i]).item() for i in range(0, (len(tokenized_text) - 1))]
  20. predicted_token = [tokenizer.convert_ids_to_tokens([predicted_index[x]])[0] for x in
  21. range(1, (len(tokenized_text) - 1))]
  22. predicted_token = ''.join(predicted_token)
  23. print('raw token is:', input_tx)
  24. print('Predicted token is:', predicted_token)
  25. return predicted_token
  26. if __name__ == '__main__':
  27. list_ = get_mlm_model([
  28. 'bert-base-chinese',
  29. 'nghuyong/ernie-1.0',
  30. 'hfl/chinese-roberta-wwm-ext',
  31. # 'voidful/albert_chinese_tiny', # albert有点问题,有些层没参数,使用的是初始化参数
  32. ])
  33. inputs = [
  34. "[CLS]清华大学[MASK][MASK]在哪里[SEP]",
  35. "[CLS] [MASK] [MASK] [MASK] 是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]",
  36. "[CLS][MASK][MASK][MASK]是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]",
  37. "[CLS]今天的股票会[MASK]吗[SEP]",
  38. "[CLS]今天的股票会[MASK][MASK][SEP]",
  39. ]
  40. for input_ in inputs:
  41. for name, tokenizer, model in list_:
  42. print(name)
  43. gen_text(input_, tokenizer, model)
  44. print()

结果
bert-base-chinese
raw token is: [CLS]清华大学[MASK][MASK]在哪里[SEP]
Predicted token is: 。华大学校址在哪里

nghuyong/ernie-1.0
raw token is: [CLS]清华大学[MASK][MASK]在哪里[SEP]
Predicted token is: 清华大学大华在哪里

hfl/chinese-roberta-wwm-ext
raw token is: [CLS]清华大学[MASK][MASK]在哪里[SEP]
Predicted token is: 清华大学究底在哪里

bert-base-chinese
raw token is: [CLS] [MASK] [MASK] [MASK] 是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]
Predicted token is: 《庸》是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

nghuyong/ernie-1.0
raw token is: [CLS] [MASK] [MASK] [MASK] 是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]
Predicted token is: 西游记是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

hfl/chinese-roberta-wwm-ext
raw token is: [CLS] [MASK] [MASK] [MASK] 是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]
Predicted token is: 西游梦是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

bert-base-chinese
raw token is: [CLS][MASK][MASK][MASK]是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]
Predicted token is: 《庸》是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

nghuyong/ernie-1.0
raw token is: [CLS][MASK][MASK][MASK]是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]
Predicted token is: 西游记是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

hfl/chinese-roberta-wwm-ext
raw token is: [CLS][MASK][MASK][MASK]是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。[SEP]
Predicted token is: 西游梦是中国神魔小说的经典之作,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

bert-base-chinese
raw token is: [CLS]今天的股票会[MASK]吗[SEP]
Predicted token is: 。天的股票会跌?

nghuyong/ernie-1.0
raw token is: [CLS]今天的股票会[MASK]吗[SEP]
Predicted token is: 今天的股票会涨吗

hfl/chinese-roberta-wwm-ext
raw token is: [CLS]今天的股票会[MASK]吗[SEP]
Predicted token is: 今天的股票会涨吗

bert-base-chinese
raw token is: [CLS]今天的股票会[MASK][MASK][SEP]
Predicted token is: 。天的。票会吗?

nghuyong/ernie-1.0
raw token is: [CLS]今天的股票会[MASK][MASK][SEP]
Predicted token is: 今天的股票会怎样

hfl/chinese-roberta-wwm-ext
raw token is: [CLS]今天的股票会[MASK][MASK][SEP]
Predicted token is: 今天的股票会涨吗


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/360093
推荐阅读
相关标签
  

闽ICP备14008679号