文本分类模型性能提升实践

在处理大量文本数据时,模型的性能和准确度是一个挑战。文本分类模型的表现在很大程度上取决于语料库中使用的词汇类型和为分类创建的特征类型。以下是用来提升模型结果的几种实践方法。

对于分类问题,选择测试和训练语料库非常重要。为了让各种特征在分类算法中发挥作用,领域知识起着至关重要的作用。例如,如果问题是“社交媒体数据的情感分类”,训练语料库应该包含来自推特和脸书等社交来源的数据。另一方面,如果问题是“新闻数据的情感分类”,语料库应该包含来自新闻来源的数据。这是因为语料库的词汇随着领域而变化。社交媒体包含大量俚语和不规范的关键词,如“awesome, lol, good”等,这些在任何正式语料库如新闻、博客等中都是不存在的。

停用词被定义为语料库中最常用的词汇。最常见的停用词包括“a, the, of, on”等。这些词汇用于定义句子的结构,但在定义上下文时没有用处。将这些类型的词汇作为特征词汇会导致文本分类性能不佳。为了获得更好的性能,可以直接从语料库中忽略这些词汇。除了语言停用词外,还有一些其他支持词汇,它们的重要性低于其他任何词汇。这些包括:

// 语言停用词 - a, of, on, the, etc. // 位置停用词 - 国家名称,城市名称等 // 时间停用词 - 月份和星期的名称(一月,二月,星期一,星期二,今天,明天等) // 数字停用词 - 描述数字的词汇(一百,一千等)

从测试数据中移除这些实体后,测试数据将被重新构建为以下形式:

test_data = [ (' luv phones.', 'Class A'), (' amaaaazingg company!', 'Class A'), (' feeling very gooood about features lol.', 'Class A'), (' bestest phones.', 'Class A'), (" awesomee player", 'Class A'), (' not like phone #apple ', 'Class B'), (' tired stuff.', 'Class B'), (' worst fears! . check out here: http://goo.gl/qdjk3rf ', 'Class B'), (' boss lives, horrible.', 'Class B') ]

在大多数数据科学问题中,建议在清洁的语料库上进行分类算法,而不是在嘈杂的语料库上进行。嘈杂的语料库指的是文本中不重要的实体,如标点符号、数值、链接和URL等。从文本中移除这些实体会增加准确度,因为可能的特征集样本空间大小会减小。

在语料库中出现频率较低的关键词通常在文本分类中不起作用。可以去除这些低频特征,从而提高模型的性能。例如,如果语料库的词频计数如下所示:很明显,“fig”和“dale”这两个词的出现频率较低,与其他词汇相比。因此,如果选择10作为阈值,所有低频关键词都可以被忽略,从而提高准确性。

词汇是任何分类技术的组成部分。然而,这些词汇在文本中通常以不同的变体使用,这取决于它们的语法(动词、形容词、名词等)。将这些术语归一化为它们的根形式始终是一个好习惯。这种技术被称为词元化。例如,以下词汇:

Playing Player Plays Play Players Played

都可以归一化为“Play”,就分类器而言。当有单一特征用于十个变体而不是每个变体的十个特征时,性能会很好。

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