如何使用Python、Transformers和scikit-learn對文字進行分類?
電子郵件、社交媒體帖子、聊天、網站和文章的形式生成越來越多的文字。所有這些文字文件都是豐富的資訊來源。但由於文字的非結構化性質,理解和分析文字既困難又耗時。因此,大多數公司無法利用這一寶貴的資訊來源。這就是文字分類等自然語言處理 (NLP) 方法的用武之地。
文字分類,也稱為文字分類或文字標記,是將文字文件分配給一個或多個類別或類的過程。它使組織能夠以快速且廉價的方式自動構建所有型別的相關文字。透過對其文字資料進行分類,組織可以快速瞭解趨勢並縮小部分範圍以進行進一步分析。
假設您受僱於一個組織來幫助他們整理客戶評論。首先,如果組織擁有全球客戶群並且有多種語言編寫的評論,那麼根據他們的語言劃分它們將有助於下游任務。
儘管正面評價令人振奮和充實,但它們很少包含任何需要立即解決的緊急問題。因此,執行情緒分析並將評論分類為正面和負面可能是一個好主意。在這裡,您之前的語言分類將在製作特定語言的情感分析模型時派上用場。
獲得負面評論後,您可以按提及的功能/產品進一步對它們進行分類。這將使不同的團隊能夠輕鬆找到相關評論並找出他們做錯了什麼或需要改進的地方。
文字分類是如何工作的?
執行文字分類有兩種廣泛的方法:
- 手動的
- 自動的
手動文字分類涉及人工註釋者,他閱讀文字文件的內容並標記它們。現在您可能認為這種方法只會在您處理大量文字時引起問題。但是你這樣想就錯了,這裡有兩個原因:
實時分析
作為緩慢的副作用,手動分類會阻礙組織快速識別和響應危急情況的能力。例如,假設雲提供商或 API 出現故障,如果一個人按順序檢視客戶支援票證,則組織可能需要一段時間才能意識到他們的服務已停機。
一致性
即使在最好的日子裡,人類也是不完美的存在。由於缺乏睡眠、無聊、分心等因素,他們很容易犯錯誤。這些可能導致分類不一致。對於關鍵應用程式,這些失誤可能會使組織損失數千美元。
除了這些缺點之外,人力成本比在雲伺服器上執行 Python 指令碼要高得多。因此,透過應用自然語言處理和其他 AI 技術來執行自動文字分類是大多數情況下的最佳選擇。自動分類速度更快,成本效益更高。最重要的是,一旦文字分類模型被訓練成令人滿意的規格,它就會始終如一地執行。
文字文件自動分類的方法有很多種,但是所有的方法都可以分為三類:
- 基於規則的方法
- 基於機器學習的方法
- 混合方法
基於規則的方法
基於規則的方法使用一組手動建立的語言規則來對文字進行分類。這些規則由每個類別的一個模式或一組模式組成。一種非常簡單的方法是根據特定類別單詞的出現對文件進行分類。
假設您要將新聞文章分為兩類:Business和Science。為此,您需要建立兩個對每個類別進行分類的單詞列表。例如,您可以為商務類選擇高盛、摩根士丹利、蘋果等組織的名稱,而對於科學類,您可以選擇 NASA、科學家、研究人員等詞。
現在,當你想對一篇新聞文章進行分類時,基於規則的分類器會統計商業相關詞和科學相關詞的數量。如果與商業相關的詞的數量大於與科學相關的詞,那麼文章將被歸類為商業,反之亦然。
使用基於規則的系統的最大優點是外行易於理解。因此,一旦建立了一個準系統,它就可以隨著時間的推移而逐步改進。但這一優勢的另一面是開發人員需要對領域有深入的瞭解才能建立規則。此外,基於規則的分類方法不能很好地擴充套件,因為在沒有適當測試的情況下新增新規則會影響舊規則的結果。
基於機器學習的方法
您可以選擇一種基於機器學習的方法,使用過去的觀察自動學習規則,而不是手動定義規則。基於機器學習的分類器使用標記示例作為訓練資料來學習單詞/短語與標籤(即類別)之間的關聯。
現在,這聽起來很容易解決,但在訓練機器學習分類器之前,您需要解決一個問題。特徵提取。你看,計算機不像我們那樣理解文字,它們只理解數字、0 和 1。在計算機視覺問題的情況下,影像以代表單個畫素值的數字形式在內部儲存。
但文字並非如此。因此,訓練 NLP 分類器的第一步是將文字轉換為數字向量表示。最常用的文字嵌入方法之一是詞袋。它建立一個向量來計算預定義字典中每個單詞的出現次數。
- 假設您將字典定義為:“(What, a,sunny, serene, beautiful, day, night)”,並且您想要建立句子“What a serene night”的向量嵌入。您最終會得到句子的以下向量表示:(1, 1, 0, 1, 0, 0, 1)。
- 在生成所有標記文字文件的向量表示後,您可以使用它們來訓練分類器。文字文件的向量表示將以其正確的類別傳遞給分類器。
- 一旦模型被訓練到所需的效能標準,它就可以用來做出準確的預測。相同的特徵提取方法用於建立新文字文件的向量表示。分類模型使用這些特徵向量來預測文件的類別。
基於機器學習的文字分類方法通常比基於規則的分類器更準確。除此之外,機器學習分類器更容易擴充套件,因為您可以簡單地新增新的訓練示例來更新模型。機器學習分類器的唯一問題是它們難以理解和除錯。因此,如果出現問題,可能很難找出導致問題的原因。
混合方法
混合文字分類方法結合了兩全其美。它們將機器學習分類器的泛化能力與易於理解和調整基於規則的方法相結合。藉助機器學習模型,他們可以學習複雜的規則,並且可以使用規則來修復任何衝突的分類或不穩定的行為。
以根據製藥、金融、汽車、採礦等行業部門對金融新聞文章進行分類的任務為例。為此,您可以建立一個混合系統。首先,訓練一個從新聞文章中提取公司名稱的命名實體識別模型。然後,建立每個部門的公司列表。就是這樣,使用這兩個東西你可以建立一個稱職的分類器。
案例:使用 Transformers 和 scikit-learn 對新聞標題進行分類
spacy-sentence-bert首先,為句子轉換器、 和scikit-learn模組安裝 spaCy 包裝器。
並在此處獲取資料 。
具體步驟點選標題見原文
相關文章
- 使用 Transformers 進行圖分類ORM
- 如何通過Scikit-Learn實現多類別文字分類?文字分類
- 如何透過Scikit-Learn實現多類別文字分類?文字分類
- 使用CNN,RNN和HAN進行文字分類的對比報告CNNRNN文字分類
- Mac電腦如何對檔案進行分類和整理Mac
- 教程 | 用Scikit-Learn實現多類別文字分類文字分類
- 在 Transformers 中使用對比搜尋生成可媲美人類水平的文字 ?ORM
- NLP-使用CNN進行文字分類CNN文字分類
- 如何用 Python 和深度遷移學習做文字分類?Python遷移學習文字分類
- 如何用機器學習對文字分類機器學習文字分類
- dhtmlxGantt如何對任務進行分組使用教程HTML
- 樸素貝葉斯分類-實戰篇-如何進行文字分類文字分類
- 深度學習——如何用LSTM進行文字分類深度學習文字分類
- python:利用iloc語句對列表的分類變數進行操作Python變數
- Mac電腦如何將檔案進行分類和整理?Mac
- 如何快速對影像進行分幅?
- Python資料探勘入門與實踐---使用scikit-learn 估計器分類Python
- 如何用Python和機器學習訓練中文文字情感分類模型?Python機器學習模型
- python中的scikit-learn庫來實現SVM分類器。Python
- 利用Scikit-learn機器學習庫的特徵分類進行vnpy期貨量化交易機器學習特徵
- Collections工具類,可以使用collections工具類對程式碼中的list進行分組
- 使用 TensorFlow Hub 和估算器構建文字分類模型文字分類模型
- 在前端使用 JS 進行分類彙總前端JS
- 使用貝葉斯進行新聞分類
- 上篇 | 使用 ? Transformers 進行機率時間序列預測ORM
- 下篇 | 使用 ? Transformers 進行機率時間序列預測ORM
- 如何對“神明”的級別進行分層
- 中文新聞情感分類 Bert-Pytorch-transformersPyTorchORM
- 大資料分析標準如何進行分類大資料
- 如何使用diff 和 patch 命令對檔案進行協作?
- 【人人都能學得會的NLP - 文字分類篇 03】長文字多標籤分類分類如何做?文字分類
- 利用Scikit-learn機器學習庫的特徵分類進行vnpy期貨量化交易(程式碼)機器學習特徵
- Python如何優化列表介面進行分頁Python優化
- 文字分類模型文字分類模型
- 文字分類-TextCNN文字分類CNN
- 如何對使用者進行細分-郵件營銷中使用者細分的方法
- 使用Facebook的FastText簡化文字分類AST文字分類
- 使用什麼工具可以快速分類檔案 根據名稱進行分類