在文字中提取標籤一向是nlp中的難點問題,因為文字可能存在多個標籤,這是乙個多標籤多分類的問題。
sklearn.multiclass中有乙個onevsrestclassifier分類器,可以將二分類器轉成多標籤多分類器(通過one vs rest的方案),所以我們可以將xgboost轉化成提取文字標籤的模型。
具體做法是:
1、將所有可能的標籤進行序列化,並針對每段文字標註標籤進行向量化,即構造乙個所有標籤長度的向量,對每個標籤進行標註:有則在對應位置標1,否則標0,從而構成label。
featurelist =[0
]*len(featuredic)
for f in featuredic.keys():
if f in row[u"清洗標籤"]:
featurelist[featuredic[f]]=
1
2、是利用onevsrestclassifier和xgboost構造乙個多標籤多分類器:
from xgboost import xgbclassifier
from sklearn.multiclass import onevsrestclassifier
clf = onevsrestclassifier(xgbclassifier(
**xgb_default)
)
3、對訓練資料進行訓練:
clf.fit(x_train,y_train)
4、在測試資料中進行驗證:對測試資料進行**後,將真實標註和**標註各自拼成合併向量進行評估:
y_pred = clf.predict(x)
y_all =
for yy in y:
y_all.extend(yy)
y_pred_all =
for yy in y_pred:
y_pred_all.extend(
list
(yy)
)print
(accuracy_score(y_all,y_pred_all)
, precision_score(y_all,y_pred_all)
,\ recall_score(y_all,y_pred_all)
)
最終可以達到精準率0.52和召回率0.82,對於乙個基準模型是比較好的結果!
接下來考慮用bert模型來輔助進行標籤提取!
自己動手實現html去標籤和文字提取
這裡主要介紹一下re.compile pattern flags 裡面的flags用法 識別符號作用 re.i 忽略大小寫 re.l 表示特殊字符集 w,w,b,b,s,s 依賴於當前環境 re.m 多行模式 re.s 並且包括換行符在內的任意字元 注意 不包括換行符 re.u 表示特殊字符集 w,...
HTML中提取文字內容,去掉標籤樣式等
作者 王之渙 朝代 唐 譯文對照 白日依山盡,黃河入海流。夕陽依傍著西山慢慢地沉沒,滔滔黃河朝著東海洶湧奔流。欲窮千里目,更上一層樓。private static final string regex script s s 定義script的正規表示式 private static final st...
自己動手實現html去標籤和文字提取
這裡主要介紹一下re.compile pattern flags 裡面的flags用法 識別符號作用 re.i 忽略大小寫 re.l 表示特殊字符集 w,w,b,b,s,s 依賴於當前環境 re.m 多行模式 re.s 並且包括換行符在內的任意字元 注意 不包括換行符 re.u 表示特殊字符集 w,...