?在线实时演示: 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文档
纸预印本