crf.fit(X_train, y_train) 不运行并显示上述错误。此外,当我运行 labels2 = list(crf.classes_) 我得到 NoneType 对象不可迭代。之前没用过crfsuite,网上也找不到满意的资料。
需要注意的几件事:csv 文件有 NO None 类型,是一个简单的数据集,仅由数字(包括标签)组成,最后一列是标签。使用 CRF,因为它是一个多标签顺序问题。
data = np.genfromtxt("training.csv", delimiter = ',', skip_header = 1)
data = data.astype(int, order='K', casting='unsafe', subok=True,
copy=True)
labels = data[:,6]
features = data[:,0:6]
X_train,X_test,y_train,y_test =
train_test_split(features,labels,test_size=0.3,random_state=1)
features = np.asmatrix(features)
X_train = [features[i] for i in X_train]
y_train = [labels[i] for i in y_train]
X_test = [X_test[i] for i in X_test]
y_test = [y_test[i] for i in y_test]
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)
labels2 = list(crf.classes_)
y_pred = crf.predict(X_test)
metrics.flat_f1_score(y_test, y_pred,average='weighted', labels=labels2)
我希望最终代码能给我 F1 分数,但我无法通过培训:/