[TOC]

對于一門語言來說,一句話有無限可能。問題是我們只能通過有限的程序來分析結(jié)構(gòu)和含義。嘗試將“語言”理解為:僅僅是所有合乎文法的句子的大集合。在這個(gè)思路的基礎(chǔ)上,類似于 word -> word and/or/... word 就成立,這種式子叫做遞歸產(chǎn)生式。理論上,句子可以無限擴(kuò)充。

文法

自定義文法

寫法上與上一篇博文的分類規(guī)則思路基本一致,并且更簡單、更直觀,可以和之前的對比著看。

import nltkfrom nltk import CFG

grammar = nltk.CFG.fromstring("""  S -> NP VP  VP -> V NP | V NP PP  PP -> P NP  V -> "saw" | "ate" | "walked"  NP -> "John" | "Mary" | "Bob" | Det N | Det N PP  Det -> "a" | "an" | "the" | "my"  N -> "man" | "dog" | "cat" | "telescope" | "park"  P -> "in" | "on" | "by" | "with"  """)
sent = 'Mary saw Bob'.split()
rd_parser = nltk.RecursiveDescentParser(grammar)for i in rd_parser.parse(sent):    print(i)

在定義文法的時(shí)候,

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式