Heuristics(启发式方法)对自然语言处理的影响究竟几何?
计算机科学中的启发式方法:”In computer science, a heuristic is a technique designed to solve a problem that ignores whether the solution can be proven to be correct, but which usually produces a good solution or solves a simpler problem that contains or intersects with the solution of the more complex problem. Some commercial anti-virus scanners use heuristic signatures to look for specific attributes and characteristics for detecting viruses and other forms of malware.” (from Wikipedia)
启发式方法与理论方法的比较: heuristics tends to be more related to engineering. (See Where it comes from)
语言是经验的产物,但是没有理论的参与,分析语言将变为困难的事。然而,启发式方法在NLP中的应用毋庸置疑,假如我们只用理论来描述语言,就应了那句”All grammar leaks”。近年来一批启发式方法的论文说明了启发式方法的重要性,但必须指出的是,它们经常利用一些语法作为理论基础。
造成启发式方法在NLP中如此重要的原因可能是NLP的评价标准不是确定的。不像理论计算机科学有时空复杂度作为标准,数据库,网络等应用有带宽,存储空间等指标作为标准,自然语言处理结果的评价几乎是只能依靠人工的,并且还可能因人而异。在没有一个统一的评价标准指导下,自然语言处理中优化的指标也就是难以统一的。启发式方法虽然没有坚实的理论基础为支撑,但是对具体的指标可能有很好的效果。
还有一个原因是语言是因国而异的,大家指导标准不同,语法自然不能适用于所有语言。启发式方法可能发现一种特定语言的特异之处,而这种特异之处并不能形成统一的理论,甚至不能为其他语言所用。
目前NLP问题的处理方法大多以理论为骨架,加入启发式方法为枝叶,构成可根据具体情况配置的方法。可能还没有一种方法先由启发式方法提出,然后研究者找出了足以包括该方法的,简单的理论。但是我觉得这个构想很美好……