在任何机器学习算法中,使用词语本身作为特征的最佳方法是什么?
我的问题是要从特定段落中提取与词语相关的特征。我应该使用字典中的索引作为数值特征吗?如果是的话,我该如何对这些特征进行归一化处理?
一般来说,NLP 中如何将词语本身用作特征?
回答:
有几种传统技术可以将词语映射到特征(二维数据矩阵中的列,其中行是各个数据向量)上,以便作为机器学习模型的输入。分类:
-
一个布尔字段,用于编码某个词在给定文档中是否存在;
-
一个预定词集的频率直方图,通常是所有训练数据文档中出现频率最高的前 X 个词(本回答最后一段将详细介绍此项);
-
两个或多个词的并置(例如,‘alternative’和‘lifestyle’连续出现时,其意义与这两个词的单独意义无关);这种并置可以在数据模型中直接捕获,例如,一个表示两个特定词在文档中直接相邻出现的布尔特征,或者可以在机器学习技术中利用这种关系,就像在这个例子中朴素贝叶斯分类器所做的那样强调文本;
-
词语作为原始数据用于提取潜在特征,例如,LSA或潜在语义分析(有时也称为LSI,用于潜在语义索引)。LSA是一种基于矩阵分解的技术,从文本中提取出文本本身的词语所未能显现的潜在变量。
机器学习中的一个常用参考数据集由大约50个最常见的词(例如,a、an、of、and、the、there、if)的频率组成,这些词被称为“停用词”,用于莎士比亚、伦敦、奥斯汀和弥尔顿的出版作品。一个具有单隐藏层的基本多层感知器可以以100%的准确率分离这个数据集。这个数据集及其变体在机器学习数据库中广泛可用,学术论文中展示的分类结果同样常见。