例如,「鸚鵡不會游泳。」這裏的主要動詞是「游泳」。我們如何通過語言處理來提取?有沒有用於此目的的已知算法?我們如何從句子中提取主要動詞?
回答
您可以在句子上運行dependency parsing算法,並找到root
關係的依賴關係。例如,在運行了句「鸚鵡不會游泳」,通過Stanford Parser online demo,我得到了以下的依賴:
nsubj(swim-4, Parrots-1)
aux(swim-4, do-2)
neg(swim-4, not-3)
root(ROOT-0, swim-4)
其中每一行提供有關在句子中兩個詞之間的不同的語法關係的信息(見下文) 。你需要最後一行,它說swim
是句子的根,即主要動詞。因此,爲了提取主要動詞,首先執行依賴性解析並找到root(ROOT-0, X)
的依賴關係。 X
將是主要動詞。
有幾種現成的依賴關係解析器,如可用於Stanford CoreNLP或Malt parser的依賴關係解析器。我更喜歡斯坦福大學,因爲它具有可比性,但具有更好的文檔並支持多線程分析(如果您有大量文本)。斯坦福分析器輸出XML,所以你必須解析它才能得到上面的依賴信息。
爲了完整起見,對輸出的其餘部分進行簡要說明。第一行說parrots
是句子中的第一個單詞,swim
是第4個單詞。第二行說do
是與swim
有關的助動詞,第三行說not
否定swim
。有關每個依賴項的含義的更詳細解釋,請參閱Stanford typed dependency manual。
編輯: 取決於你如何定義main verb
,有些句子可以有一個以上的主要動詞,如I like cats and hate snakes
。造成這種情況的依賴性解析包含的依賴關係:
root(ROOT-0, like-2)
conj(like-2, hate-5)
一起說,根據解析器主要動詞爲like
,但hate
是連體它。出於您的目的,您可能需要考慮like
和hate
爲主。
要獲得動詞(或任何其他Part-Of-Speech)有許多可用的監督和無監督算法,如Viterbi算法,隱馬爾可夫模型,布里爾標註器,約束格拉默等。即使我們有像NLTK(Natural Language Tool Kit)爲Python(以及類似的圖書館是也可用於Java),這些算法已經在其中編碼了這些算法。在任何文檔或句子中註釋POS是一項複雜的工作(尤其是當您需要高準確性時),並且您需要對此領域有深入的瞭解,先從基礎知識開始,持續努力可能會導致您開發一種算法,效率高於當時的效率。
你只是在談論PoS標籤,它可以告訴你一個句子中的動詞是什麼,但不能告訴你哪一個動詞是主要動詞。例如,「我的貓喜歡吃西紅柿和玩洋娃娃」有三個動詞。 – mbatchkarov
- 1. 從句子中提取動詞
- 2. 如何從Linux Shell中的句子中提取單詞?
- 3. NLP從句子提取字典單詞
- 4. 如何從網頁中提取句子
- 5. 如何通過查找前面的單詞從句子中提取名詞?
- 6. 如何提取句子中的主語及其各自的依賴詞組?
- 7. Excel的VBA,我如何提取第n個單詞的句子從
- 8. 我們如何從父模塊中提取所有子模塊?
- 9. 從R中的句子中提取單詞
- 10. 如何在java中使用stanford nlp從句子中只提取名詞短語?
- 11. 從句子中抓取單詞
- 12. 從句子中提取單詞的方法
- 13. Java OpenNLP從句子中提取所有名詞
- 14. 從英語句子中提取關鍵詞
- 15. Java從句子中提取子串
- 16. 如何使用python&NLTK提取評論的子主題句子?
- 17. 我如何從主要活動中獲取數據到意圖
- 18. 如何提取句子的最後一個單詞
- 19. 從轉換中提取主體 - 對象 - 動詞
- 20. 什麼時候我們會從文本中提取動詞短語?
- 21. 在PHP中從HTML中提取句子
- 22. 如何從URL中提取單詞?
- 23. 如何從行中提取單詞
- 24. 我們如何使用python在AndroidManifest.xml中找到主要活動?
- 25. 從python中的句子中提取子句
- 26. 從文本文檔中提取句子
- 27. 從句子中提取名稱
- 28. 從句子中提取「有用」信息?
- 29. 從文本中提取關鍵句子
- 30. 通過匹配詞典詞來提取句子
謝謝。這真是很好的解釋! –
根並不總是一個動詞。 – kalu
正確。讀者:請閱讀斯坦福手冊(鏈接),它比我看起來更微妙。 – mbatchkarov