利用xgboost提取文字標籤

2021-10-10 06:05:41 字數 1280 閱讀 9466

在文字中提取標籤一向是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,...