中文句子處理之句子錯誤檢查——順便爲跳票道歉

句子相似度計算已將跳票好久了,工作的事情一直比較忙也沒有時間再做,這陣子輕鬆一點了會慢慢補上(反正已經厚着臉皮跳票快一年了)。有個機會接觸到了句子錯誤檢查,突發奇想利用之前的句子依存關係分析做了一個句子錯誤檢查的程序。
說技術實現之前先要老生常談一個依存關係的問題,一個詞在句子中的位置基本上是固定,大家可以結合詞性來理解。比如英語中,一個單詞的詞性是固定的,當年寫英語題目判斷錯誤的一個重要手段就是看單詞的詞性是否是正確的,如果這個單詞根本沒有這個詞性,雖然我不知道它錯在哪裏但基本能肯定這個句子是錯的。這個方法簡單粗暴,但確確實實很實用。實際上,我看到的文獻,句子錯誤檢查最早的思路就是進行詞性判讀。這一點大家可以在中科院分詞的具體實現中看出端倪,HMM算法的基礎就是詞性,然後將這個詞最可能出現的位置算出來,也順帶進行了一次句子錯誤檢查,大量歧義也在此時被檢查出來。這個大家可以看我之前寫的歧義分析那篇文章。
那麼我們還有什麼方法進行句子的錯誤檢查呢?概率!這個就非常寬泛了,想法從簡單到複雜都有。最簡單的想法,一個字可能出現的概率非常低,但它在句子中出現了,我們就可以懷疑是不是寫錯字了,那麼將寫法相似的字或者讀音相似的字拿過來,判斷一下看看是不是正確的。這種方法顯然對一些生僻字非常實用。
另一個想法,我們可以將所有容易弄錯的句子或者短語統計出來,然後判斷句子中是否含有這種錯誤。這種方法主要針對方言,因爲方言發音的問題經常將一個詞錯寫成另外的詞。這種方法高效,但是統計錯誤數據庫的工作太複雜,只有機構和國家級別才能做到。當然,可以將這種範圍縮小到個人,每個人書寫習慣不同,犯的錯誤往往相同。
寫到這裏大家應該已經發現了,對,我一直在灌水,什麼有用的都沒說呢。
除了上面的概率的方法,還可以用純算法解決。利用詞性來判斷句子錯誤是很準確的,但侷限性太大了,粒度實在太粗了。那麼結構分析結合詞性的方法被提出了,至於句子結構分析。。。。我好像也寫過一篇博客,簡單來說就是句式。比如最簡單的句式,主謂賓,那麼能充當主語的也就只有幾個詞性(在中文裏面,請不要討論從句一說,標準的中文是沒有從句的,這個涉及到中西方差異,本文不做贅述,我寫過討論帖),如果出現不可能出現在這個位置的詞性就可以被認爲是錯誤。這個方法在外文還是挺好用的,在中文就有點水土不服,畢竟中文句式難以總結,中文太靈活了。這部分我沒有做出來,對我來說難度太大了,也希望有誰能總結出來。
下面的方法是我做出來的,把上面的方法粒度再細一點,就成了依存關係,依存關係是可以繞過句式展現句子結構的方法。那麼任意一個詞可能出現的依存關係是有限的,如果出現了特別低概率或者根本不存在的情況,就可以認爲是有錯誤。我使用的訓練集不是太大,效果只能說一般,但驚奇得發現對類似於“的”“得”“地”的分析相當準確,出人意料。這一點在錯誤判讀中是比較頭疼的問題,就算是人都很容易弄錯。因爲樣本集要保證完全沒有錯誤,而且需要的量比較大,我也只能是作爲實驗來做了。
那麼修改呢?檢查出來不是最終目的,那麼怎麼修改呢?長嘆一聲,我的方法沒解決,或者說我沒有再拿出時間來繼續研究。因爲一個詞會跟很多詞有依賴,其他詞出現異常並不能直接指向出錯誤的詞,所以錯誤的查找就成了問題,更別說修改了。
那麼本次就寫到這裏了,有問題可以私信哦,或者郵件到[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章