机器学习在性骚扰自动分类中的应用

在互联网上,许多人分享了他们遭受性骚扰的经历,但随着时间的推移,这些信息逐渐被遗忘。然而,这些信息可以用来有效地自动分类性骚扰事件,本文将帮助理解如何利用机器学习减少性骚扰事件的发生。通过分类,可以更好地分析数据,并为社会变革者提供支持。此外,数据的聚合也将成为可能,这对于加快当局的行动至关重要。

业务问题

自动分类性骚扰类型将使希望改变社会的人能够更好地分析数据,这就是为什么使用机器学习识别性骚扰将是一个游戏规则改变者,并确保不再发生此类不可预见的事件。通过分类,数据的聚合也将成为可能,这可能是一个重要的用例,使当局能够更快地采取行动。

机器学习问题的表述

将利用自然语言处理(NLP)技术来正确分类性骚扰类型,因为手动对每个事件进行分类和采取行动需要大量的时间和精力。使用单标签和多标签分类来自动填写在线事件报告,并根据虐待类型对数据进行分类和总结。

数据集分析

数据收集自Safecity,这是一个收集公共场所犯罪匿名报告的平台。选择了三个最密集的类别:groping/touching、staring/ogling和commenting,作为数据集,总共有13个不同的类别,其他类别较为稀疏。每个描述可能属于无、一些或全部类别。提供给数据已经分为训练集、测试集和验证集,使用了相同的数据分割组合来训练模型。

性能指标

将使用以下评估指标:对于二元分类,使用准确率;对于多标签分类,使用汉明损失。汉明损失可以定义为错误标签与总标签数的比例。

案例研究目标

本案例研究参考了论文SafeCity: Understanding Diverse Forms of Sexual Harassment Personal Stories。目标是在使用不同的路线(使用传统的机器学习模型)的同时,匹配论文的结果(使用深度学习技术)。

探索性数据分析

首先查看目标类别的平衡情况。从下面的图表中可以看出,所有三个数据集(训练集、测试集和验证集)的数据都高度不平衡,有更多不是实际事件的描述,而不是性骚扰事件的描述。

描述文本的预处理

作为预处理的一部分,采取了以下步骤。每个步骤的代码后面跟着一个简短的描述。(文章末尾提供了整个代码库的链接供参考)

# 去重 df_train_og.drop_duplicates(subset="Description", keep=False, inplace=True) df_train_go.drop_duplicates(subset="Description", keep=False, inplace=True) df_train_co.drop_duplicates(subset="Description", keep=False, inplace=True) train_df.drop_duplicates(subset="Description", keep=False, inplace=True) # 移除标点和停用词 puncts = [',', '.', '"', ':', ')', '(', '-', '!', '?', '|', ';', "'", '$', '&', '/', '[', ']', '>', '%', '=', '#', '*', '+', '\', '•', '~', '@', '£', ...] def clean_text(data): stop = stopwords.words('english') res = [] data['Description'] = data['Description'].apply(lambda x: ' '.join([word for word in x.split() if word not in (stop)])) for x in data['Description']: x = str(x) for punct in puncts: if punct in x: x = x.replace(punct,' ') res.append(x) return res

描述文本的嵌入

嵌入描述字段的目的是使机器学习模型能够理解单词,需要一种方法将它们的含义嵌入到向量中,并提供给模型。尝试了两种嵌入策略:

1. 使用TF-IDF向量化器,结合三元组、二元组和单元素特征,最大特征数为50,min_df为15。这些值是通过实验确定的。

2. 使用通用句子编码来嵌入句子。它将可变长度的输入文本转换为512维向量。许多研究论文指出,使用句子级编码器比单词级编码器更有益,因为它保留了上下文信息。

使用的模型

使用了以下机器学习模型进行单标签分类:

1. 逻辑回归(作为基线模型)

2. XGBoost

3. LightGBM

对于多标签分类,使用了二元相关性与支持向量分类器和XGBoost作为基学习器。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485