Công Cụ Trích Xuất Thực Thể Sử Dụng Mạng Nơ-ron Tích Ch CNN

CNN4IE

Địa chỉ dự án: https://github.com/jiangnanboy/CNN4IE

Công cụ trích xuất thông tin tiếng Trung. Sử dụng các biến thể khác nhau của CNN để trích xuất thông tin, trong tương lai sẽ liên tục thêm vào các mô hình khác. Dự án này sử dụng pytorch, python để phát triển.

CNN4IE đã điều chỉnh các khối tích chập cải tiến khác nhau để sử dụng cho việc trích xuất thông tin tiếng Trung.

Hướng Dẫn

  • Giới thiệu
  • Mô hình
  • Đánh giá
  • Cài đặt
  • Bộ dữ liệu
  • Công việc cần làm
  • Trích dẫn
  • Tham khảo

Giới Thiệu

Hiện tại chủ yếu thực hiện trích xuất thực thể tiếng Trung:

Các mẫu huấn luyện được đánh dấu theo định dạng B, I, O.

Mô Hình

Mô hình

Phần khối tích chập trong mô hình chủ yếu đến từ một số mô-đun trong các bài báo sau.

  • 1.MultiLayerResCNN(cnn4ie/mlrescnn): Mạng CNN tích chập nhiều lớp dư (+CRF), Convolutional Sequence to Sequence Learning.
  • 2.MultiLayerResDSCNN(cnn4ie/dscnn): Mạng CNN tách sâu nhiều lớp (+CRF), Xception: Deep Learning with Depthwise Separable Convolutions.
  • 3.MultiLayerAugmentedCNN(cnn4ie/attention_augmented_cnn): Mạng CNN tăng cường chú ý nhiều lớp (+CRF), Attention Augmented Convolutional Networks.
  • 4.MultiLayerLambdaCNN(cnn4ie/lambda_cnn): Mạng LambdaCNN nhiều lớp (+CRF), LambdaNetworks: Modeling long-range Interactions without Attention.
  • 5.MultiLayerResLWCNN(cnn4ie/lcnn): Mạng CNN nhẹ nhiều lớp (+CRF), Pay Less Attention with Lightweight and Dynamic Convolutions.
  • 6.MultiLayerResDYCNN(cnn4ie/dcnn): Mạng CNN động nhiều lớp (+CRF), Pay Less Attention with Lightweight and Dynamic Convolutions.
  • 7.MultiLayerStdAttnCNN(cnn4ie/stand_alone_self_attention_cnn): Mạng CNN tự chú ý độc lập nhiều lớp (+CRF), Stand-Alone Self-Attention in Vision Models.
  • 8.MultiLayerCSAttCNN(cnn4ie/channel_spatial_attention_cnn): Mạng CNN chú ý kênh và không gian nhiều lớp (+CRF), CBAM: Convolutional Block Attention Module.
  • 9.MultiLayerSACNN(cnn4ie/self_attention_cnn): Mạng CNN tự chú ý nhiều lớp (+CRF), Self-Attention Generative Adversarial Networks.
  • 10.MultiLayerGroupMixedCNN(cnn4ie/mixed_depthwise_cnn): Mạng CNN tách hỗn hợp nhiều lớp (+CRF), MixConv: Mixed Depthwise Convolutional Kernels.
  • 11.MultiLayerMultiCNN(cnn4ie/multi_cnn): Mạng CNN đa tích chập nhiều lớp (+CRF), Character-Level Translation with Self-attention.
  • 12.MultiLayerMixedAttCNN(cnn4ie/mixed_attention_cnn): Mạng CNN chú ý hỗn hợp nhiều lớp, ConvBERT: Improving BERT with Span-based Dynamic Convolution.

Sử dụng

  • Các tham số cấu hình được tìm thấy trong tệp config.cfg trong mỗi thư mục mô hình, tệp này sẽ được tải khi huấn luyện và dự đoán.
  • Huấn luyện và dự đoán (hỗ trợ tải vectơ nhúng đã được huấn luyện trước)
1.MULTILAYERRESCNN(CNN4IE/MLRESCNN)

(1). Huấn luyện

from cnn4ie.mlrescnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 199 | Thời gian: 0m 4s
  Mất mát Huấn luyện: 228.545 | PPL Huấn luyện: 1.802960293422957e+99
   Mất mát Kiểm tra: 433.577 |  PPL Kiểm tra: 1.9966207577208172e+188
   Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       1.00      1.00      1.00      4539
         2       0.98      0.99      0.99      4926
         3       0.90      0.83      0.86       166
         4       0.74      0.98      0.84        52
         5       0.94      0.77      0.84       120
         6       0.76      0.97      0.85        39
         7       0.82      0.87      0.85        54
         8       0.93      0.74      0.82        68
         9       0.95      0.77      0.85        26
        10       1.00      0.80      0.89        10

  accuracy                           0.98     10000
  macro avg       0.90      0.87      0.88     10000
  weighted avg       0.99      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.mlrescnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config_cfg')
kết_quả = dự_đoán.dự_đoán('Theo Tân Hoa Xã, thành phố Lục An, tỉnh An Huy được bình chọn là một trong mười thành phố dễ ở!')

print(kết_quả)

[{'start': 7, 'stop': 13, 'word': 'tỉnh An Huy thành phố Lục An', 'type': 'LOC'}, {'start': 1, 'stop': 4, 'word': 'Tân Hoa Xã', 'type': 'ORG'}]

2.MULTILAYERRESDSCNN(CNN4IE/DSCNN)

(1). Huấn luyện

from cnn4ie.dscnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 192 | Thời gian: 0m 3s
  Mất mát Huấn luyện: 191.273 | PPL Huấn luyện: 1.172960293422957e+99
   Mất mát Kiểm tra: 533.260 |  PPL Kiểm tra: 5.2866207577208172e+188
   Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      4539
         2       0.98      0.98      0.98      4926
         3       0.92      0.82      0.87       166
         4       0.82      0.88      0.85        52
         5       0.84      0.76      0.80       120
         6       0.90      0.95      0.92        39
         7       0.90      0.85      0.88        54
         8       0.84      0.71      0.77        68
         9       0.85      0.65      0.74        26
        10       1.00      0.70      0.82        10

  accuracy                           0.98     10000
  macro avg       0.91      0.83      0.86     10000
  weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.dscnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]

3.MULTILAYERAUGMENTEDCNN(CNN4IE/ATTENTION_AUGMENTED_CNN)

(1). Huấn luyện

from cnn4ie.attention_augmented_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 192 | Thời gian: 0m 3s
      Mất mát Huấn luyện: 185.204 | PPL Huấn luyện: 2.711303579086953e+80
       Mất mát Kiểm tra: 561.592 |  PPL Kiểm tra: 7.877783034926193e+243
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      4539
         2       0.98      0.99      0.98      4926
         3       0.96      0.77      0.85       166
         4       0.81      0.85      0.83        52
         5       0.88      0.71      0.78       120
         6       0.90      0.90      0.90        39
         7       0.90      0.85      0.88        54
         8       0.85      0.69      0.76        68
         9       1.00      0.42      0.59        26
        10       1.00      0.50      0.67        10

  accuracy                           0.98     10000
  macro avg       0.93      0.77      0.82     10000
  weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.attention_augmented_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]

4.MULTILAYERLAMBDACNN(CNN4IE/LAMBDA_CNN)

(1). Huấn luyện

from cnn4ie.lambda_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 197 | Thời gian: 0m 2s
      Mất mát Huấn luyện: 198.344 | PPL Huấn luyện: 1.3800537707438322e+86
       Mất mát Kiểm tra: 668.780 |  PPL Kiểm tra: 2.8022239331403918e+290
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      4539
         2       0.98      0.98      0.98      4926
         3       0.80      0.78      0.79       166
         4       0.89      0.90      0.90        52
         5       0.86      0.77      0.81       120
         6       0.90      0.92      0.91        39
         7       0.81      0.87      0.84        54
         8       0.88      0.75      0.81        68
         9       0.93      0.54      0.68        26
        10       1.00      0.70      0.82        10

  accuracy                           0.98     10000
  macro avg       0.90      0.82      0.85     10000
  weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.lambda_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]

5.MULTILAYERRESLWCNN(CNN4IE/LCNN)

(1). Huấn luyện

from cnn4ie.lcnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 190 | Thời gian: 0m 4s
      Mất mát Huấn luyện: 195.472 | PPL Huấn luyện: 7.807223255192846e+84
       Mất mát Kiểm tra: 453.642 |  PPL Kiểm tra: 1.0328983269312897e+197
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      5925
         2       0.99      0.98      0.98      5501
         3       0.90      0.85      0.87       174
         4       0.72      0.93      0.81        57
         5       0.92      0.81      0.86       122
         6       0.82      0.91      0.86        44
         7       0.84      0.85      0.85        62
         8       0.92      0.77      0.84        71
         9       0.66      0.81      0.72        31
        10       0.91      0.77      0.83        13

 accuracy                           0.98     12000
 macro avg       0.86      0.87      0.86     12000
 weighted avg       0.98      0.98      0.98     12000

(2). Dự đoán

from cnn4ie.lcnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]

6.MULTILAYERRESDYCNN(CNN4IE/DCNN)

(1). Huấn luyện

from cnn4ie.dcnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 192 | Thời gian: 0m 4s
      Mất mát Huấn luyện: 182.916 | PPL Huấn luyện: 2.7491663642617552e+79
       Mất mát Kiểm tra: 463.782 |  PPL Kiểm tra: 2.618555606950152e+201
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       1.00      1.00      1.00      5925
         2       0.99      0.98      0.98      5501
         3       0.86      0.86      0.86       174
         4       0.80      0.93      0.86        57
         5       0.84      0.79      0.81       122
         6       0.83      0.89      0.86        44
         7       0.83      0.87      0.85        62
         8       0.88      0.75      0.81        71
         9       0.92      0.71      0.80        31
        10       1.00      0.85      0.92        13

 accuracy                           0.98     12000
 macro avg       0.89      0.86      0.88     12000
 weighted avg       0.98      0.98      0.98     12000

(2). Dự đoán

from cnn4ie.dcnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]

7.MULTILAYERSTDATTNCNN(CNN4IE/STAND_ALONE_SELF_ATTENTION_CNN)

(1). Huấn luyện

from cnn4ie.stand_alone_self_attention_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 195 | Thời gian: 0m 3s
      Mất mát Huấn luyện: 247.570 | PPL Huấn luyện: 3.29768182789317e+107
       Mất mát Kiểm tra: 681.482 |  PPL Kiểm tra: 9.20623044303632e+295
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      4539
         2       0.99      0.99      0.99      4926
         3       0.95      0.86      0.90       166
         4       0.93      0.96      0.94        52
         5       0.91      0.78      0.84       120
         6       0.93      0.97      0.95        39
         7       0.80      0.89      0.84        54
         8       0.91      0.72      0.80        68
         9       1.00      0.69      0.82        26
        10       1.00      0.90      0.95        10

 accuracy                           0.98     10000
 macro avg       0.94      0.88      0.90     10000
 weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.stand_alone_self_attention_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 19, 'stop': 26, 'word': 'Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc', 'type': 'ORG'}, {'start': 32, 'stop': 36, 'word': ' chiều nay', 'type': 'T'}, {'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}]

8.MULTILAYERCSATTCNN(CNN4IE/CHANNEL_SPATIAL_ATTENTION_CNN)

(1). Huấn luyện

from cnn4ie.channel_spatial_attention_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 181 | Thời gian: 0m 3s
      Mất mát Huấn luyện: 112.922 | PPL Huấn luyện: 1.1001029953413096e+49
       Mất mát Kiểm tra: 493.448 |  PPL Kiểm tra: 2.002428912702234e+214
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      4539
         2       0.98      0.98      0.98      4926
         3       0.89      0.81      0.85       166
         4       0.77      0.88      0.82        52
         5       0.90      0.73      0.81       120
         6       0.84      0.92      0.88        39
         7       0.81      0.89      0.85        54
         8       0.90      0.69      0.78        68
         9       0.85      0.85      0.85        26
        10       0.82      0.90      0.86        10

 accuracy                           0.98     10000
 macro avg       0.88      0.87      0.87     10000
 weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.channel_spatial_attention_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]    

9.MULTILAYERSACNN(CNN4IE/SELF_ATTENTION_CNN)

(1). Huấn luyện

from cnn4ie.self_attention_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 198 | Thời gian: 0m 2s
      Mất mát Huấn luyện: 241.123 | PPL Huấn luyện: 5.227354818437855e+104
       Mất mát Kiểm tra: 421.708 |  PPL Kiểm tra: 1.3982772880257424e+183
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       0.99      1.00      1.00      4539
         2       0.98      0.98      0.98      4926
         3       0.89      0.87      0.88       166
         4       0.84      0.92      0.88        52
         5       0.76      0.74      0.75       120
         6       0.88      0.95      0.91        39
         7       0.83      0.91      0.87        54
         8       0.80      0.71      0.75        68
         9       1.00      0.54      0.70        26
        10       1.00      0.70      0.82        10

 accuracy                           0.98     10000
 macro avg       0.90      0.83      0.85     10000
 weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.self_attention_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}, {'start': 19, 'stop': 26, 'word': 'Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc', 'type': 'ORG'}, {'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}]

10.MULTILAYERGROUPMIXEDCNN(CNN4IE/MIXED_DEPTHWISE_CNN)

(1). Huấn luyện

from cnn4ie.mixed_depthwise_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 200 | Thời gian: 0m 1s
      Mất mát Huấn luyện: 310.169 | PPL Huấn luyện: 5.0653182367925945e+134
       Mất mát Kiểm tra: 451.143 |  PPL Kiểm tra: 8.489160946059989e+195
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       1.00      1.00      1.00      4539
         2       0.98      0.99      0.99      4926
         3       0.93      0.83      0.88       166
         4       0.89      0.90      0.90        52
         5       0.89      0.75      0.81       120
         6       0.92      0.92      0.92        39
         7       0.91      0.93      0.92        54
         8       0.86      0.71      0.77        68
         9       1.00      0.58      0.73        26
        10       1.00      0.70      0.82        10

 accuracy                           0.99     10000
 macro avg       0.94      0.83      0.87     10000
 weighted avg       0.98      0.99      0.98     10000

(2). Dự đoán

from cnn4ie.mixed_depthwise_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 19, 'stop': 24, 'word': 'Ủy ban Thường', 'type': 'ORG'}, {'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}, {'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}]

11.MULTILAYERMULTICNN(CNN4IE/MULTI_CNN)

(1). Huấn luyện

from cnn4ie.multi_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 200 | Thời gian: 0m 1s
      Mất mát Huấn luyện: 234.673 | PPL Huấn luyện: 8.267382310706752e+101
       Mất mát Kiểm tra: 444.010 |  PPL Kiểm tra: 6.779999895568844e+192
       Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       1.00      1.00      1.00      4539
         2       0.98      0.99      0.98      4926
         3       0.92      0.84      0.88       166
         4       0.81      0.96      0.88        52
         5       0.83      0.78      0.81       120
         6       0.86      0.95      0.90        39
         7       0.92      0.91      0.92        54
         8       0.80      0.71      0.75        68
         9       1.00      0.69      0.82        26
        10       1.00      0.70      0.82        10

 accuracy                           0.98     10000
 macro avg       0.91      0.85      0.88     10000
 weighted avg       0.98      0.98      0.98     10000

(2). Dự đoán

from cnn4ie.multi_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}, {'start': 20, 'stop': 25, 'word': 'ban Thường Đại', 'type': 'ORG'}, {'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}]

12.MULTILAYERMIXEDATTCNN(CNN4IE/MIXED_ATTENTION_CNN)

(1). Huấn luyện

from cnn4ie.mixed_attention_cnn.train import HuấnLuyện
huấn_luyện = HuấnLuyện()
huấn_luyện.huấn_luyện_mô_hình('config.cfg')

Epoch: 250 | Thời gian: 0m 3s
  Mất mát Huấn luyện: 107.790 | PPL Huấn luyện: 6.497928061494806e+46
   Mất mát Kiểm tra: 283.142 |  PPL Kiểm tra: 9.269305878179231e+122
   Báo cáo Kiểm tra:               precision    recall  f1-score   support

         1       1.00      1.00      1.00      4539
         2       0.98      0.99      0.99      4926
         3       0.91      0.84      0.87       166
         4       0.86      0.98      0.92        52
         5       0.91      0.78      0.84       120
         6       0.93      0.97      0.95        39
         7       0.88      0.91      0.89        54
         8       0.92      0.72      0.81        68
         9       1.00      0.65      0.79        26
        10       1.00      0.80      0.89        10

 accuracy                           0.99     10000
 macro avg       0.94      0.86      0.89     10000
 weighted avg       0.99      0.99      0.99     10000

(2). Dự đoán

from cnn4ie.mixed_attention_cnn.predict import DựĐoán

dự_đoán = DựĐoán()
dự_đoán.tải_mô_hình_từ_vựng('config.cfg')
kết_quả = dự_đoán.dự_đoán('Báo Bắc Kinh, ngày 28/2, phóng viên Tô Ninh đưa tin: Hội nghị lần thứ 30 của Ủy ban Thường vụ Đại hội Đại biểu Nhân dân toàn quốc khóa 8 đã kết thúc vào chiều nay tại Bắc Kinh.')

print(kết_quả)

[{'start': 32, 'stop': 36, 'word': 'chiều nay', 'type': 'T'}, {'start': 2, 'stop': 4, 'word': 'Bắc Kinh', 'type': 'LOC'}, {'start': 12, 'stop': 14, 'word': 'Tô Ninh', 'type': 'LOC'}] 

Đánh Giá

Việc đánh giá sử dụng các chỉ số P, R, F1, PPL, v.v. Phương pháp đánh giá có thể sử dụng precision_recall_fscore_support hoặc classification_report trong scikit-learn.

Cài Đặt

  • Cài đặt: pip install CNN4IE
  • Tải mã nguồn:
git clone https://github.com/jiangnanboy/CNN4IE.git
cd CNN4IE
python setup.py install

Bằng một trong hai phương pháp trên để hoàn thành cài đặt. Nếu không muốn cài đặt, có thể tải gói mã nguồn từ github

Thẻ: trích xuất thông tin CNN mạng nơ-ron tích chập xử lý ngôn ngữ tự nhiên Học sâu

Đăng vào ngày 10 tháng 6 lúc 01:36