这个问题很有意思,之前遇到过。话说这个取决于你用什么样的方法。通常来说,如果你用bayesian nonparametric的模型处理这样的问题,会灵活一些,但是相关的理论比较复杂。svm显然不具备这样的条件,但是如果你的training sample质量还不错,那么这种情况应该不是很常见的,这种情况下,最简单的办法是直接忽略。因为通常在nlp的时候,你的dictionary应该是很大,而之前在training的过程中,没有提供过这样的feature的信息,所以即使你不忽略,也不会有太大的不同,而且nlp一般的原则是,在预处理时删除出现频率较小的词,因此即使你假设这个新的feature曾经出现过,也会被删除,所以忽略之还是合理的。另外一种可能,你在建模是把所有出现频率极小的词都记为一个feature,比如叫lowfrequency,然后在预测的时候,遇到这样特别少见的词,就直接算在lowfrenquency里面。更好的办法时,建模的时候,除了原始feature,加入一些hyperfeature,这是前一种方法的小推广,比如加入一些词类的变量,如关于体育,关于政治的,或者英语的,法语的。然后用相应的方式和原有的feature一起建模。svm在这时有可能会遇到些困难,因为它本身的setting并不一定能很好处理这些相关的,不同层次的变量。不过你可以试试,实际结果才是硬道理。
如果这种情况出现的很多,那么只能说明你的training sample缺乏代表性(这有时也很常见,因为数据的性质可能随时间变化很快),那么没办法,还是重新建模吧。
其实,一个更加有效的办法是: 不要用svm ! svm对于feature不稳定的情况很敏感,有可能效果很差。有很多模型,比如cart, boosting trees都有相关的专门处理missing feature的方法,而且效果绝对不比svm差,不要过于迷信svm。