我正在尋找一個庫來簡單地驗證英語自然語言句子的語法。它不必一直都是正確的(很明顯有些句子會不明確/人類會對有效性產生不同意見)。驗證句子的語法
因此,例如: 吉姆喜歡藍色球 將是有效的,而 吉姆喜歡喜歡藍色球吉姆 不會。
我試過了Andrej Pancik的「英語句子的句法分析器」,它似乎在做我想做的事情,但不幸的是,大多數句子我認爲是「有效的」,它不認爲是。
有沒有我可以使用的代碼?否則,我正在考慮通過創建類似ANTLR的分析樹並用WordNet識別名詞來自己做這件事。
我正在尋找一個庫來簡單地驗證英語自然語言句子的語法。它不必一直都是正確的(很明顯有些句子會不明確/人類會對有效性產生不同意見)。驗證句子的語法
因此,例如: 吉姆喜歡藍色球 將是有效的,而 吉姆喜歡喜歡藍色球吉姆 不會。
我試過了Andrej Pancik的「英語句子的句法分析器」,它似乎在做我想做的事情,但不幸的是,大多數句子我認爲是「有效的」,它不認爲是。
有沒有我可以使用的代碼?否則,我正在考慮通過創建類似ANTLR的分析樹並用WordNet識別名詞來自己做這件事。
你不會覺得這個a)容易做到,或b)可能作爲一個可用的軟件包提供。
人不認同什麼英語是
Colorless green ideas slept furiously.
因此你真的不能寫這樣一個程序,relaibly你想要做什麼。有些NLP解析器聲稱可以處理大部分英語,但它們並不簡單或很小;我相信所謂的斯坦福解析器就是其中之一。
你可以嘗試建立你自己的,但你會陷入英語的定義問題,除非你強烈約束你認爲是有效的英語。這可能會讓你獲得與Pancik解析器相同的效果。 (編寫解析器的行爲是一種堅持,即語言看起來像解析器接受的內容,而不管真相如何)。
句法分析是一個廣泛的研究領域。有很多可用的解析器,但不在C#中。最先進的解析器列在:http://aclweb.org/aclwiki/index.php?title=Parsing_(State_of_the_art)
一個溫和的起點是NLTK,用python編寫。