WEB开发网
开发学院软件开发Python 可爱的 Python: 自然语言工具包入门 阅读

可爱的 Python: 自然语言工具包入门

 2007-03-29 12:38:25 来源:WEB开发网   
核心提示: 清单 8. 使用标签上的正则表达式进行分块>>> rule1 = ChunkRule('<DT>?<JJ.*>*<NN.*>',... 'Chunk optional det, zero or more adj,

清单 8. 使用标签上的正则表达式进行分块

>>> rule1 = ChunkRule('<DT>?<JJ.*>*<NN.*>',
...        'Chunk optional det, zero or more adj, and a noun')
>>> chunkparser = RegexpChunkParser([rule1], chunk_node='NP', top_node='S')
>>> chunkparser.parse(sentence)
>>> print sent['TREE']
(S: (NP: <the/DT> <little/JJ> <cat/NN>)
 <sat/VBD> <on/IN>
 (NP: <the/DT> <mat/NN>))

真正的解析将引领我们进入很多理论领域。例如,top-down 解析器可以确保找到每一个可能的产品,但可能会非常慢,因为要频繁地(指数级)进行回溯。Shift-reduce 效率更高,但是可能会错过一些产品。不论在哪种情况下,语法规则的声明都类似于解析人工语言的语法声明。本专栏曾经介绍了其中的一些: SimpleParse 、 mx.TextTools 、 Spark 和 gnosis.xml.validity (参阅 参考资料)。

甚至,除了 top-down 和 shift-reduce 解析器以外,NLTK 还提供了“chart 解析器”,它可以创建部分假定,这样一个给定的序列就可以继而完成一个规则。这种方法可以是既有效又完全的。举一个生动的(玩具级的)例子:

清单 9. 为上下文无关语法定义基本的产品

>>> from nltk.parser.chart import *
>>> grammar = CFG.parse('''
...  S -> NP VP
...  VP -> V NP | VP PP
...  V -> "saw" | "ate"
...  NP -> "John" | "Mary" | "Bob" | Det N | NP PP
...  Det -> "a" | "an" | "the" | "my"
...  N -> "dog" | "cat" | "cookie"
...  PP -> P NP
...  P -> "on" | "by" | "with"
...  ''')
>>> sentence = Token(TEXT='John saw a cat with my cookie')
>>> WSTokenizer().tokenize(sentence)
>>> parser = ChartParser(grammar, BU_STRATEGY, LEAF='TEXT')
>>> parser.parse_n(sentence)
>>> for tree in sentence['TREES']: print tree
(S:
 (NP: <John>)
 (VP:
  (VP: (V: <saw>) (NP: (Det: <a>) (N: <cat>)))
  (PP: (P: <with>) (NP: (Det: <my>) (N: <cookie>)))))
(S:
 (NP: <John>)
 (VP:
  (V: <saw>)
  (NP:
   (NP: (Det: <a>) (N: <cat>))
   (PP: (P: <with>) (NP: (Det: <my>) (N: <cookie>))))))

probabilistic context-free grammar(或者说是 PCFG)是一种上下文无关语法,它将其每一个产品关联到一个概率。同样,用于概率解析的解析器也捆绑到了 NLTK 中。

您在等待什么?

NLTK 还有其他本篇简短介绍中不能涵盖的重要功能。例如,NLTK 有一个完整的框架,用于通过类似于“naive Bayesian” 和“maximum entropy”等模型的统计技术进行文本分类。即使还有篇幅,现在我也还不能解释其本质。不过,我认为,即使是 NLTK 较低的层,也可以成为一个既可用于教学应用程序也可用于实际应用程序的实用框架。

上一页  4 5 6 7 8 9 

Tags:可爱 Python 自然语言

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接