我们需要决定在一些文本处理项目中,是选用支持向量机还是快速人工神经网络。该项目包括上下文拼写纠正以及将文本标记为某些短语及其同义词。哪种方法更合适?或者是否有比FANN和SVM更适宜的替代方案?
我认为你可以从这两个算法中得到有竞争力的结果,因此你应该汇总这些结果......考虑集成学习。
更新:
我不知道是否具体到足够程度:使用贝叶斯最优分类器来结合每个算法的预测。您必须训练这两种算法,然后训练贝叶斯最优分类器来使用它们并根据算法输入作出最优预测。
把你的训练数据分为三部分:
更新2.0:
创建算法集成的另一种方法是使用10倍(或更普遍地,k倍)交叉验证:
请记住,通常可以结合多种分类器和验证方法以产生更好的结果。这只是找到最适合您领域的方法的问题。
您可能还想看看maxent分类器(/对数线性模型)。它们在自然语言处理问题中非常流行。现代实现使用拟牛顿方法进行优化,而不是较慢的迭代缩放算法,训练速度比支持向量机更快。它们似乎也对正则化超参数的精确值更不敏感。如果您想免费获得特征组合,则应该仅首选SVM而不是maxent。
至于SVM与神经网络的比较,使用SVM可能比使用ANN更好。像maxent模型一样,训练SVM是一个凸优化问题。这意味着,在给定数据集和特定分类器配置的情况下,SVM将始终找到相同的解决方案。当训练多层神经网络时,系统可能会收敛到各种局部最小值。因此,您将根据用于初始化模型的权重获得更好或更差的解决方案。使用ANN,您需要执行多个训练运行以评估给定模型配置的好坏。
首先将句子分词成单词,并将其转换为一个维度为d的单词嵌入矩阵(即输入嵌入层)。
在该输入嵌入层上应用卷积滤波器以生成特征图。
对于每个滤波器,进行最大池化操作以获得固定长度的输出并降低输出的维度。
您可以使用卷积神经网络(CNN)或循环神经网络(RNN)来训练自然语言处理(NLP)。我认为现在CNN已经达到了最先进的水平。