任務方案思考 文字分類篇

2021-10-11 21:38:34 字數 1880 閱讀 7429

來自:cs的陋室

自己接觸的專案大都是初創,沒開始多久的專案,從0到1的不少,2023年快結束,感覺這個具有一定個人特色的技術經驗可以在和大家分享一下。

預計會有下面篇章:

文字分類可以說是nlp的入門級任務,尤其是nlu領域,最簡單的就是這個任務了,而在現實應用中,這也是最容易實現的乙個任務,因此在面對nlp問題時,如果能抽象為文字分類問題,那實現成本會低很多,下面列舉幾個比較常見的場景:

可以看到,對文章、句子級別的理解,其實很多都可以抽象為文字分類。

其實很多問題通過乙個簡單的規則或者是一條簡單的正規表示式就能搞定了,例如我要判斷乙個句子裡是否有英文:

[a-za-z]+
不會吧不會吧不會吧,應該不會有人想弄個文字分類模型來整這玩意吧?

這應該是最簡單的一種文字分類方案了,快速而且一般高準,至少準確率上很容易打標,而且耗時上效能也非常優秀。

詞典模板應該是搜尋領域最常用的方案了,這種方案相比規則正則具有更高的靈活性,而且由於搜尋本身對物料的要求也較高,因此隨著物料資料的豐富,詞典質量能得到提公升,準確保證的前提下,召回也能得到保證。簡單說說詞典模板的思路:

有這三招其實對於工程已經完全足夠了,如果遇到效果不足的話,其實可以考慮一些規則+模型的方式,結合資料集的精煉,效果基本就能達標了,具體的一些調優手段,在下一章會聊。

當然了,要完成文字分類任務,還會有一些比較奇怪的招數,例如抽象為knn,即檢視最接近的case(語義相似度衡量相近)的類目來判斷結果;召回-排序分離等,至於這些方案怎麼來?我的經驗看來**、分享上都非常少,大都是在case分析的基礎上,慢慢提煉解決方案領悟到的。

上面你的只是一些比較規範化的方案,然而實際上並不是說我們使用這些方案就一定能得到好的效果,我們需要做的是在上面方案為基線的情況下,分析bad case,找到合適的優化方案使整個文字分類任務效果能夠更好。

有關bad case分析的經驗,放這裡:

現在給大家介紹幾個效果優化的策略。

在阿里小蜜的經驗分享中我就提到過了這點:前沿重器[5] | 阿里小蜜的資料量分級處理機制,而且是花一篇文章來討論這個問題,其實他的思想就是,簡單問題用簡單方案,複雜問題用複雜方案,通過分級措施,簡單、高頻的query能快速返回結果,讓使用者的需求更快滿足。

另外,建議大家依舊堅持弄乙個規則模組,或者是一些黑白名單,畢竟演算法這塊是需要干預能力的,遇到緊急問題,重訓模型不現實,此時對用黑白名單去操作就非常方便了。

模型效果不好,不好在**,可以通過bad case快速分析出來,很多時候通過加入一些bad case對應的資料就能有非常明確的效果,舉幾個例子:

雖然nlp是可以說是乙個對深度學習以來比較深的領域,這讓這個任務不需要太多人工特徵,但不代表人工分析特徵缺失就不需要,通過case分析其實可以看得到模型對哪些型別的句子分類不准,我們就需要讓模型針對性的學習,例如模型對序列資訊學習不好,那我們就該加點rnn系列的積木進去,具體加的方式,這個有很多,並列的、先後的都行,可以自行嘗試。

模型本身是乙個招數,能有很強的泛化能力,但是實際上簡單模型或者說特定模型有一些東西不太好解決,一些很明顯的問題,我們不要急於直接就該模型、更新資料之類的,而是可以看看是否能通過乙個小規則就能解決,如果是,那可太香了。

學習完推薦系統讓我感到最震撼的一點是,要讓乙個東西盡可能精準而又全面,抽象出來其實就是有高準、高招,乙個很有用的方案就是把高準確和高召回兩個任務分開,分別解決,分別控制,這樣去進行調優的空間就會更大,這就是「召回-排序」結構。

重申這個方案的優點——准招兩個任務需求分離,分別控制。當然,也有缺點,缺點**於靈活性,就和接水管,要求每根水管質量都好才不會漏水,因此控制的難度就會比較差,同時太過複雜的話,可能會有記憶體和耗時的風險。

基線方案其實大家都懂,只要稍加學習基線方案都能輕鬆完成,而分高下就在於,針對那些錯誤、沒錯好的點,能否找到快速、精準解決的方法,這也是打算寫這個小系列的目的,多給大家一些思路。

文字分類任務簡介

文字 特徵工程 決定著模型分類的上界 分類器 逼近模型的上限 類別 1.經典的文字特徵 前人的研究的成熟理論 2.手工構造新的特徵 手工提取,看資料集中是否有好的性特徵 3.用神經網路提取 神經網路僅作為特徵提取器來用 tf tfidf doc2vec word2vec tf詞頻 tfidf 詞頻 ...

思考 tf idf之於文字分類

因為工作中需要用到計算詞語權重,進而作詞與選擇,思考了一下tf idf。首先還是簡單介紹一下tf idf。這個概念最開始用於資訊檢索。tf表示term frequency,通常是指詞頻 idf表示inversed document frequency,是文件頻率的倒數。計算方式如下 通常是對於一篇文...

思考 tf idf之於文字分類

因為工作中需要用到計算詞語權重,進而作詞與選擇,思考了一下tf idf。首先還是簡單介紹一下tf idf。這個概念最開始用於資訊檢索。tf表示term frequency,通常是指詞頻 idf表示inversed document frequency,是文件頻率的倒數。計算方式如下 通常是對於一篇文...