?オンラインライブデモ: http://tworld.io/ss3/ ???
SS3テキスト分類器は、解釈可能なテキスト分類のための斬新でシンプルな監視された機械学習モデルです。つまり、自然に(自己)その理論的根拠を説明する能力があります。もともとは、論文のセクション3で「ソーシャルメディアストリームを介したシンプルで効果的な早期のうつ病検出のためのテキスト分類フレームワーク」 (ARXIVプレプリント)で紹介されました。このシンプルなモデルは、すべての参加モデルの中で記号のエリスクラボの最後の3つのエディションで、連続して最高の2番目のベストの結果を得ました[Burdisso et al。 2019; Loyola et al。 2021]。ホワイトボックスの性質を考えると、研究者と実践者は、テキスト分類のモデルを解釈可能な(つまり自己探求可能)展開することができます(これは、人々の生活が何らかの形で影響を受ける可能性がある分類問題を扱う人にとって特に役立ちます)。
注:このパッケージには、「T-SS3:テキストストリーム上の早期リスク検出のための動的n-Gramsを備えたテキスト分類器」 (ARXIVプレリント)で導入されたものなど、元のモデルのさまざまなバリエーションが組み込まれています。
Pyss3は、非常に簡単でインタラクティブで視覚的な方法でSS3を使用できるようにするPythonパッケージです。 SS3分類器の実装に加えて、Pyss3には、機械学習モデルの開発がより鮮明かつ迅速に開発できるように、一連のツールが搭載されています。これらのツールでは、実際に学んだこととその理由を確認できるようにすることで、モデルを分析、監視、理解できます。これを達成するために、PYSS3は、以下に指摘するように、 SS3クラス、 Live_Testクラス、 Evaluationクラスの3つの主要なコンポーネントを提供します。
SS3クラスクリアAPIを使用して分類器を実装します。たとえば、最初にチュートリアルのデータセットの1つをロードしましょう。
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のモデルのAPIと非常に似ていることに注意してください。
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で与えられたドキュメント(または独自のタイピング!)でモデルを(ライブ)テストするために使用できるブラウザのインタラクティブなツールをローカルに開きます。これにより、モデルが実際に学習しているものを視覚化して理解することができます。
たとえば、これらのライブテストのうち2つをオンラインでアップロードして、「映画のレビュー(センチメント分析)」と「トピック分類」を試してみてください。どちらもチュートリアルに従って取得されました。
EvaluationクラスこれはおそらくPyss3の最も有用なコンポーネントの1つです。名前が示すように、このクラスは、たとえばtest 、 kfold_cross_validation 、 grid_search 、プロットテスト、層別Kドククロス検証、ハイパーメーターの最適化のグリッド検索、およびそれぞれの3Dプロットを使用した評価結果を視覚化するためのplot方法など、モデル評価とハイパーパラメーターの最適化のためのユーザーの使いやすい方法を提供します。おそらくその最も重要な機能の1つは、実行した評価の履歴を自動的に(そして永続的に)記録する能力です。これにより、時間が節約され、さまざまなハイパーパラメーター値の観点から分類器のパフォーマンスをインタラクティブに視覚化および分析することができます(およびニーズに応じて最適なモデルを選択します)。たとえば、3つのハイパーパラメーター、滑らかさ、有意性( s )、および制裁( p )で4倍の交差検証でグリッド検索l実行しましょう。
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つの異なる値を取得し、検索が終了すると、この関数は(デフォルトで)最良の精度を得たハイパーパラメーター値を(デフォルト)返します。これで、 plot関数を使用して、インタラクティブな3D評価プロットを使用してグリッド検索で得られた結果を分析することもできます。
Evaluation . plot ()この3Dプロットでは、各ポイントは、その特定の値の組み合わせを使用して実行される実験/評価を表します( s 、 l 、およびp )。また、これらのポイントは、選択されたメトリックに応じたパフォーマンスがどれほど優れているかに比例して塗装されています。ユーザーが異なる評価メトリック(精度、精度、リコール、F1など)を選択すると、プロットは「オンザフライ」を更新します。さらに、カーソルがデータポイントに移動すると、有用な情報が表示されます(その実験で得られた混乱マトリックスの「コンパクト」表現を含む)。最後に、3Dプロットを表示する前に、PYSS3はインタラクティブプロットを含むプロジェクトフォルダーに単一のポータブルHTMLファイルを作成することに言及する価値があります。これにより、ユーザーはこの単一のHTMLファイルを使用して、プロットを別の場所に保存、送信、またはアップロードできます。たとえば、これらのファイルのうち2つをアップロードして、「センチメント分析(映画レビュー)」と「トピック分類」を確認するために、両方の評価プロットもチュートリアルに従って取得されました。
開始ページに移動するだけです:d
簡単に使用してください:
pip install pyss3 プロジェクトに興味を持ってくれてありがとう、あなたは!あらゆる種類のヘルプ(コード、バグレポート、コンテンツ、データ、ドキュメント、デザイン、例、アイデア、フィードバックなど)、問題、および/またはプルリクエストは、小さなタイプミスから新機能まで、あらゆるレベルの改善に歓迎し、PYSS3をより良くするのに役立ちますか?
上部の「編集」ボタン(「鉛筆」アイコン)を使用して、このリポジトリのファイルをgithubで直接編集できることを忘れないでください。
最後に、このリポジトリにコミットするために新しいプルリクエストを作成する予定の場合は、「Git Commitメッセージの書き方」から「素晴らしいGitコミットメッセージの7つのルール」に従っているため、コミットも従うことを確認してください。
(詳細情報が必要な場合は、私に連絡することをためらわないでください[email protected])
これらの素晴らしい人々(絵文字キー)に感謝します:
Florian Angermeir ? ? | Muneeb Vaiyani ? ? | サウラブ・ボラ ? | Hubert Baniecki ? |
このプロジェクトは、全委員会の仕様に従います。あらゆる種類の貢献を歓迎します!
完全なドキュメント
APIドキュメント
ペーパープレリント