語言檢測對機器學習來說是一個很好的用例,更具體地說,就是用於文字分類。給定來自電子郵件、新聞文章、語音到文字功能的輸出或其他任何地方的文字,語言檢測模型會告訴您它是什麼語言。
這是快速對資訊進行分類和排序並應用特定語言的附加工作流程層的好方法。例如,如果要對Word文件應用拼寫檢查,則首先必須為正在使用的字典選擇正確的語言。否則,你會發現拼寫檢查器給出的答案是錯誤的。
其他用例可能包括將電子郵件路由到位於正確地理位置的客戶服務部門,將正確的字幕或隱藏式字幕應用於視訊,或對正在分析的文字應用其他語言特定的文字分類。
看到這你應該很清楚,語言檢測真的很有用,讓我們繼續談談如何快速完成任務。
從這個資料集開始吧, https://cloud.google.com/prediction/docs/language_id.txt
它基本上是一個帶有英文、法文和西班牙文樣本的.csv。目標是看看是否可以訓練機器學習模型來理解這些語言之間的差異,然後再給出一些新的文字的同時,預測它所使用的語言。
所以這兒做的第一件事就是把一個機器學習模型構建器,在Docker容器中執行,它有一個簡單的API。這花了不到一分鐘。
然後,克隆並下載了這個方便的工具,使您可以輕鬆地在計算機上用文字檔案對它進行訓練,這花了一分鐘左右的時間。
下一步是將CSV轉換為文字檔案,以便可以輕鬆地訓練Classificationbox。
一個老道的開發人員可以跳過這一步,只解析CSV檔案,並直接從那裡對分類框進行API呼叫。
以下是作者寫的一些不太好的Go程式碼。
執行此指令碼後,硬碟上的資料夾會以不同的語言命名,並且每個資料夾內都有包含語言樣本的文字檔案。花了大約10分鐘來編寫指令碼並執行它。
有趣的部分要開始了。Classificationbox已啟動並執行,然後我們在語言資料夾的父目錄上執行imgclass。花費大約3秒鐘時間:
1.處理所有樣本
2.將20%的樣本分成驗證集
3.用訓練集訓練分類箱
4.使用驗證集進行驗證
以下是得到的結果:
97%!這對於只花20分鐘訓練語言檢測機器學習模型來說是非常好的。
需要注意的一件重要的事情是類不平衡。每個類都有不同數量的樣本,他們不遵循訓練模型的最佳實踐。理想情況下,每個類中都有相同數量的例子。
關鍵是,機器學習最適合實驗。強烈建議大家嘗試使用Machine Box或其他工具。給定一個好的資料集,建立自己的機器學習/分類模型其實沒那麼難。
什麼是Machine Box?
Machine Box將最先進的機器學習功能置於Docker容器中,因此開發人員可以非常快速地將自然語言處理、面部檢測、物件識別等輕鬆整合到您自己的應用程式中。
它們是按比例構建的,所以當你的應用程式真正起飛時,只需在水平方向上新增更多盒子,即可無限擴充套件。當然,它比任何雲服務都便宜(而且它們可能會更好),並且您的資料也不會離開基礎架構。