我在找一個可以從C++,Python或F#輕鬆使用的庫,它可以區分來自「詞沙拉」的格式良好的英語句子。我試過The Stanford Parser,不幸的是,它解析了這個:區分格式良好的英語句子和「詞沙拉」
Some plants have with done stems animals with exercise that to predict?
沒有投訴。我不是在尋找一些非常複雜的東西,能夠處理所有可能的角落案例。我只需要過濾出一個明顯的廢話。
我在找一個可以從C++,Python或F#輕鬆使用的庫,它可以區分來自「詞沙拉」的格式良好的英語句子。我試過The Stanford Parser,不幸的是,它解析了這個:區分格式良好的英語句子和「詞沙拉」
Some plants have with done stems animals with exercise that to predict?
沒有投訴。我不是在尋找一些非常複雜的東西,能夠處理所有可能的角落案例。我只需要過濾出一個明顯的廢話。
這是我偶然發現的事情: A general-purpose sentence-level nonsense detector,由一位名叫Ian Tenney的斯坦福大學生。
Here is the code from the project, undocumented but available on GitHub.
如果你想在此基礎上開發自己的解決方案,我想你應該注意的功能第4組使用,即語言模型,根據第3條「特色和預處理」。
這可能是不夠的,但我認爲獲得長度爲n的每個子序列的概率分數是一個好的開始。像「植物有」,「完成」,「完成動物」,「阻止動物」和「預測」等3克似乎相當不可能,這可能導致整個句子的「無意義」標籤。
此方法的優點是依賴於學習模型,而不是一套手工制定的規則,而afaik是您的另一選擇。許多人會指您Chapter 8 of NLTK's manual,但我認爲爲普通英語開發自己的上下文無關語法需要多一點。
看看這個問題的第二個答案。 http://stackoverflow.com/questions/10252448/how-to-check-whether-a-sentence-is-correct-simple-grammar-check-in-python 讓一個庫檢查句子的語法和拼寫錯誤,而不是試圖找到最可能的解析,應該是要走的路。 – HugoMailhot
@HugoMailhot好的建議,但它不會是一帆風順的。我將測試語句加到了[LanguageTool](https://www.languagetool.org/),並且它的顏色很好。 –