?在線實時演示: http://tworld.io/ss3/ ???
SS3文本分類器是一種用於文本分類的新穎而簡單的監督機器學習模型,即可以解釋的,也就是說,它具有自然(自我)解釋其理由的能力。它最初是在本文第3節中介紹的,“在社交媒體流中簡單有效的早期抑鬱症檢測的文本分類框架” (ARXIV預印本)。這個簡單的模型在所有參與模型的Clef Erisk實驗室的最後三個版本中,獲得了最佳和第二最好的結果[Burdisso等。 2019; Loyola等。 2021]。鑑於其白盒性質,它允許研究人員和從業人員部署可解釋的(即可自我解釋),因此更可靠,用於文本分類的模型(對於那些從事分類問題的人可能會受到人們的生活可能會受到某種影響)。
注意:此軟件包還包含了原始模型的不同變化,例如“ T-SS3:具有動態N-grams的文本分類器中引入的n-grams”(用於文本流的早期風險檢測” (ARXIV Preprint)(arxiv Preprint)中的不同變化。
PYSS3是一個Python軟件包,可讓您以非常簡單,互動和視覺的方式與SS3一起工作。除了實現SS3分類器外,PYSS3還配備了一套工具,可幫助您以更清晰,更快的方式開發機器學習模型。這些工具可讓您通過允許您查看它們實際學到的內容以及原因來分析,監視和理解您的模型。為此,PYSS3為您提供3個主要組件: SS3類, Live_Test類和Evaluation類,如下所示。
SS3類使用清晰的API實現分類器。例如,讓我們首先加載教程的數據集之一:
from pyss3 . util import Dataset
url = "https://github.com/sergioburdisso/pyss3/raw/master/examples/datasets/movie_review.zip"
x_train , y_train = Dataset . load_from_url ( url , "train" )
x_test , y_test = Dataset . load_from_url ( url , "test" )現在,讓我們訓練我們的第一個SS3型號!請注意,API與sklearn的模型非常相似:
from pyss3 import SS3
clf = SS3 ()
clf . fit ( x_train , y_train )
y_pred = clf . predict ( x_test )另外,該類提供了一些其他有用的方法,例如,例如extract_insight()分類決策中涉及的文本片段(允許您更好地理解模型預測背後的基本原理)或classify_multilabel()提供多標籤分類支持:
doc = "Liverpool CEO Peter Moore on Building a Global Fanbase"
# standard "single-label" classification
label = clf . classify_label ( doc ) # 'business'
# multi-label classification
labels = clf . classify_multilabel ( doc ) # ['business', 'sports']Live_Test類這使您可以交互性測試模型,並以視覺方式看到分類決策背後的原因,只有一行代碼:
from pyss3 . server import Live_Test
clf = SS3 ()
clf . fit ( x_train , y_train )
Live_Test . run ( clf , x_test , y_test ) # <- this one! cool uh? :)如下圖所示,這將在本地打開瀏覽器中的交互式工具,您可以使用x_test中給出的文檔(或單獨鍵入!)來(LIVE)測試模型。這將使您能夠可視化並了解您的模型實際學習的內容。
例如,我們已經在線上傳了其中的兩個實時測試,以便您嘗試:“電影評論(情感分析)”和“主題分類”,兩者均在教程之後獲得。
Evaluation班這可能是PYSS3最有用的組件之一。顧名思義,此類提供了用於模型評估和超參數優化的用戶易用方法,例如test , kfold_cross_validation ,GRID_SEREARK, grid_search和plot方法,進行測試,分層K-fold Cross驗證,使用超參數的網格搜索超參數優化和可視化的評估結果,以及相互作用的圖3D。它最重要的功能可能是能夠自動(並永久)記錄您執行的評估歷史的能力。這將為您節省大量時間,並可以根據其不同的超參數值(並根據您的需求選擇最佳模型),使您可以交互性地可視化和分析分類器的性能。例如,讓我們對三個超參數( s ),顯著性( l )和製裁( p )進行4倍的交叉驗證進行網格搜索:
from pyss3 . util import Evaluation
best_s , best_l , best_p , _ = Evaluation . grid_search (
clf , x_train , y_train ,
s = [ 0.2 , 0.32 , 0.44 , 0.56 , 0.68 , 0.8 ],
l = [ 0.1 , 0.48 , 0.86 , 1.24 , 1.62 , 2 ],
p = [ 0.5 , 0.8 , 1.1 , 1.4 , 1.7 , 2 ],
k_fold = 4
)在此說明性示例中, s , l和p將每個6個不同的值都採用這6個不同的值,一旦搜索結束,此函數將返回(默認情況下)獲得最佳準確度的超參數值。現在,我們還可以使用plot函數使用交互式3D評估圖分析我們的網格搜索中獲得的結果:
Evaluation . plot ()在這個3D圖中,每個點代表使用值( s , l和p )的特定組合進行的實驗/評估。同樣,這些要點與根據選定的指標成正比的表現成正比。當用戶選擇不同的評估度量(準確性,精度,召回,F1等)時,該圖將更新“即時”。此外,當光標在數據點上移動時,顯示了有用的信息(包括在該實驗中獲得的混淆矩陣的“緊湊”表示)。最後,值得一提的是,在顯示3D圖之前,PYSS3在包含交互式圖的項目文件夾中創建一個單個和便攜式HTML文件。這允許用戶使用此單個HTML文件存儲,將圖將圖存儲或上傳到另一個位置。例如,我們上傳了其中兩個文件供您查看:“情感分析(電影評論)”和“主題分類”,在教程之後也獲得了兩個評估圖。
只需轉到入門頁面:D
只需使用:
pip install pyss3 感謝您對該項目的關注,您是!歡迎任何幫助(代碼,錯誤報告,內容,數據,文檔,設計,示例,想法,反饋等),問題和/或拉動請求受到任何改進的級別,從小型錯字到新功能,請幫助我們使PYSS3更好?
請記住,您可以在頂部使用“編輯”按鈕(“鉛筆”圖標)直接在GitHub上編輯此存儲庫的任何文件。
最後,如果您打算創建一個新的拉請請求,以實現此存儲庫,我們會遵循“如何寫git commit message”中的“七個規則”,因此請確保您的提交也遵循它們。
(如果您需要任何其他信息,請隨時與我聯繫[email protected])
謝謝這些很棒的人(表情符號密鑰):
弗洛里安·安吉爾(Florian Angermeir) ? ? | Muneeb Vaiyani ? ? | Saurabh Bora ? | 休伯特·巴尼基(Hubert Baniecki) ? |
該項目遵循全企業規範。歡迎任何形式的貢獻!
完整的文檔
API文檔
紙預印本