当前位置: 首页>Php>正文

問句和疑問句的區別,問句識別:基于Xgboost的中文疑問句判斷模型

問句和疑問句的區別,問句識別:基于Xgboost的中文疑問句判斷模型

一、前言

關于Xgboost:

xgboost是大規模并行boosted tree的工具,它是目前最快最好的開源boosted
tree工具包,比常見的工具包快10倍以上。在數據科學方面,有大量kaggle選手選用它進行數據挖掘比賽,其中包括兩個以上kaggle比賽的奪冠方案。在工業界規模方面,xgboost的分布式版本有廣泛的可移植性,支持在YARN,
MPI, Sungrid Engine等各個平臺上面運行,并且保留了單機并行版本的各種優化,使得它可以很好地解決于工業界規模的問題。

網上有不少介紹的文章,這里就此略過,直奔主題,寫一篇煉丹文。

二、實戰

1、語料

(1)語料格式

content,label
在么,1
你好,0
...

左邊為文本,右邊為標簽,從這里也可以看出來,疑問句判別問題可以簡單的作為一個二分類問題來解決。

(2)語料預處理

   tokenizer = jieba.Tokenizer()corpus['tokens'] = corpus.content.apply(lambda x: list(tokenizer.cut(x)))

從本地讀取語料后,進行簡單的分詞處理

(3)特征工程

   vectorizer = TfidfVectorizer(smooth_idf=True,analyzer=analyzer,ngram_range=(1, 1),min_df=1, norm='l1')sparse_vector = vectorizer.fit_transform(train.tokens.apply(lambda x: ' '.join(x)).tolist())

問句和疑問句的區別,這里對分詞后的語料進行TFIDF特征抽取,構造訓練矩陣。

2、模型

(1)模型參數

模型參數使用k折交叉驗證進行對比,確定

   for i, param in enumerate(param_grid):cv_result = xgb.cv(param, self.train_matrix,num_boost_round=self.num_boost_round,  # max iter roundnfold=self.nfold,stratified=self.stratified,metrics=self.metrics,  # metrics focus onearly_stopping_rounds=self.early_stopping_rounds)  # stop when metrics not get better

最終得到表現最好的一組參數及相應的迭代次數等

(2)模型訓練

   _, best_param, best_iter_round = self.model_param_select()self.model = xgb.train(dtrain=self.train_matrix, params=best_param, num_boost_round=best_iter_round)

與交叉驗證尋找最佳參數不用,訓練模型時使用全部的數據進行訓練

(3)模型結果

   Param select 0, auc: 0.9793438, iter_round: 207, params: {'objective': u'binary:logistic', 'subsample': 0.5, 'eta': 0.1, 'max_depth': 4, 'silent': 1}, now best auc: 0.9793438Param select 1, auc: 0.9799142, iter_round: 350, params: {'objective': u'binary:logistic', 'subsample': 0.7, 'eta': 0.1, 'max_depth': 4, 'silent': 1}, now best auc: 0.9799142Param select 2, auc: 0.9802402, iter_round: 280, params: {'objective': u'binary:logistic', 'subsample': 1.0, 'eta': 0.1, 'max_depth': 4, 'silent': 1}, now best auc: 0.9802402...Param select 24, auc: 0.97926, iter_round: 694, params: {'objective': u'binary:logistic', 'subsample': 0.5, 'eta': 0.02, 'max_depth': 6, 'silent': 1}, now best auc: 0.980495Param select 25, auc: 0.9803058, iter_round: 824, params: {'objective': u'binary:logistic', 'subsample': 0.7, 'eta': 0.02, 'max_depth': 6, 'silent': 1}, now best auc: 0.980495Param select 26, auc: 0.980129, iter_round: 880, params: {'objective': u'binary:logistic', 'subsample': 1.0, 'eta': 0.02, 'max_depth': 6, 'silent': 1}, now best auc: 0.980495

最終可以看到,模型的auc在0.980495得到最佳的參數,保存模型。

3、實例

from interrogative.api import *train()
tag = recognize(u'今天 來 點 兔子 嗎')
output = '是疑問句' if tag else '不是疑問句'
print(output)

三、其他

1、Xgboost參數解釋:https://www.cnblogs.com/mfryf/p/6293814.html
2、具體源碼可以在我的github上找到:https://github.com/lpty/nlp_base

https://www.nshth.com/php/338467.html
>

相关文章:

  • 問句和疑問句的區別
  • population問句
  • 疑問句句型結構
  • 什么叫一般疑問句
  • 句型判斷器
  • 疑問句的種類
  • 間接疑問句
  • 50個疑問句
  • 語言使用排行榜,PHP2020語言排行榜,TIOBE公布了2020年12月編程語言排行榜
  • 你好,爬取《你好,李煥英》影評,并生成詞云圖
  • php手冊中文版,PHP筆記 17 18 19 20 21
  • ubuntu怎么切換中文輸入法,ubuntu系統配置中文輸入法以及安裝ros2,docker等開發環境
  • qt設置控件在布局的位置,Qt自定義控件(IP輸入框,windows下)
  • 計算機初級考試內容自測題,計算機基礎知識考題及答案,計算機基礎知識試題及答案(一)
  • 商標查詢,龍門標局:R商標是指什么?購買的商標能標注R嗎?
  • 蘇州注冊公司流程和步驟,蘇州企業拿到商標注冊證后,需要注意哪些事項?
  • 注冊一個商標要多久可以批下來,2022年商標注冊需要多長時間?
  • testflight教程,【技術分享】TestFlight測試的流程文檔
  • ios開發者測試版,iOS APP真機測試及上架App Store流程記錄
  • iphone怎么安裝證書,Windows申請iOS證書上架App Store詳細教程 (有這一篇就夠了)
  • 銀河證券章俊,章俊
  • 央行定向降準是什么意思,央行工作會議說了什么:定向調控 松緊適度
  • 機械制造及其自動化畢業設計,計算機在機械設制造中的應用實例,機械設計與制造畢業設計一體化分析
  • 問句和疑問句的區別,問句識別:基于Xgboost的中文疑問句判斷模型
  • 多線程sleep和wait的區別,非wait線程即時喚醒epoll_wait
  • 服務器終端,服務器TIME_WAIT和CLOSE_WAIT區別及解決方案
  • linux查看最大連接數,linux表示文件連接數,linux中連接數過多(TIME_WAIT/CLOSE_WAIT)讀這一篇就夠了
  • 視頻渲染用什么顯卡,Android視頻解碼及渲染
  • 百家號視頻怎么算原創,百家號基于AE的視頻渲染技術探索
  • 視頻制作,常見幾種視頻渲染模式介紹
  • 電子商務運營技能大賽,2022年ITMC暢享杯全國職業院校電子商務技能大賽SEM直通車競賽平臺介紹思路打法
  • Android基礎入門教程,花2萬塊買的教程!Android技術功底不夠如何去面試,大廠直通車!
  • 拼多多直通車出價技巧,直通車拼多多7天均價比價
  • flutter開發小程序,寫給程序員的Flutter詳細教程,大廠直通車!
  • 聚合支付是什么東西,聚合支付行業術語,你get到了嗎?
  • 支付行業發展現狀及趨勢,支付行業的一些名詞
  • 調和級數時間復雜度,51nod 1421 最大MOD值(高妙的調和級數復雜度)
  • mysql數據庫臟讀解決方案,數據庫事務臟讀、幻讀、不可重復讀的解決方法