首页 > 解决方案 > 我的 sklearn_crfsuite 模型没有学到任何东西

问题描述

我正在尝试按照此处的教程创建注释预测模型,但我的模型没有学到任何东西。这是我的训练数据和标签的示例:

-1:word.lower()': '\nreference...n \n \n \n \n \n \n \n \n0\ntable\n1\n:\nairbrake\ncas\nmessages\n', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'POS', '-1:postag[:2]': 'PO ', '+1:word.lower()': 'issue', '+1:word.istitle()': False, '+1:word. isupper()': True, '+1:postag': 'POS', '+1:postag[:2]': 'PO'}, {'bias': 1.0, 'word.lower()': '问题','word [-3:]':'SUE','word [-2:]':'UE','word.isupper()':真,'word.istitle()':假,' word.isdigit()':假,'postag':'POS','postag[:2]':'PO','w_emb_0':-1.220 4882,'w_emb_1':0.8920707,'w_emb_2':-3。
y_train = ['O', 'O', 'O'...'I-data-ca-s_message-type'....'B-data-ca-s_message-type']

这是模型定义和训练:

`

crf = sklearn_crfsuite.CRF(
            algorithm='lbfgs',
            c1=0.1,
            c2=0.1,
            max_iterations=100,
            all_possible_transitions=True
        )
crf.fit(X_train, y_train)

y_pred = crf.predict(X_test)
sorted_labels = sorted(labels, key=lambda name: (name[1:], name[0]))

msg = metrics.flat_classification_report(y_test, y_pred, labels=labels, digits=4)
print(msg)

`

不幸的是,我的模型没有学到任何东西:

                           precision    recall  f1-score   support   
B-data-c-a-s_message-type     0.0000    0.0000    0.0000        23  
I-data-c-a-s_message-type     0.0000    0.0000    0.0000        90
                micro avg     0.0000    0.0000    0.0000       113
                macro avg     0.0000    0.0000    0.0000       113
             weighted avg     0.0000    0.0000    0.0000       113

标签: pythonscikit-learncrfsuite

解决方案


问题已经解决了。如上所示,支持度(评估样本数)总共为 113。但是,训练集中的样本数仅为 14 左右!这太小了!我只是没有注意到这种差异。我已经反转了训练和测试数据集,现在,性能是这样的:

                            precision    recall  f1-score   support
B-data-c-a-s_message-type     0.0000    0.0000    0.0000     0     
I-data-c-a-s_message-type     0.6364    1.0000    0.7778     14
                micro avg     0.6364    1.0000    0.7778     14                    
                macro avg     0.3182    0.5000    0.3889     14             
             weighted avg     0.6364    1.0000    0.7778      14

推荐阅读