句子相似度计算已将跳票好久了,工作的事情一直比较忙也没有时间再做,这阵子轻松一点了会慢慢补上(反正已经厚着脸皮跳票快一年了)。有个机会接触到了句子错误检查,突发奇想利用之前的句子依存关系分析做了一个句子错误检查的程序。
说技术实现之前先要老生常谈一个依存关系的问题,一个词在句子中的位置基本上是固定,大家可以结合词性来理解。比如英语中,一个单词的词性是固定的,当年写英语题目判断错误的一个重要手段就是看单词的词性是否是正确的,如果这个单词根本没有这个词性,虽然我不知道它错在哪里但基本能肯定这个句子是错的。这个方法简单粗暴,但确确实实很实用。实际上,我看到的文献,句子错误检查最早的思路就是进行词性判读。这一点大家可以在中科院分词的具体实现中看出端倪,HMM算法的基础就是词性,然后将这个词最可能出现的位置算出来,也顺带进行了一次句子错误检查,大量歧义也在此时被检查出来。这个大家可以看我之前写的歧义分析那篇文章。
那么我们还有什么方法进行句子的错误检查呢?概率!这个就非常宽泛了,想法从简单到复杂都有。最简单的想法,一个字可能出现的概率非常低,但它在句子中出现了,我们就可以怀疑是不是写错字了,那么将写法相似的字或者读音相似的字拿过来,判断一下看看是不是正确的。这种方法显然对一些生僻字非常实用。
另一个想法,我们可以将所有容易弄错的句子或者短语统计出来,然后判断