2011-04-11 54 views
5

我正在写一些代码,遍历了一套POS标签(在NLTK pos_tag产生)来搜索POS模式。匹配的POS标签集存储在列表中供以后处理。对于像这样的任务,确实存在一个正则表达式样式过滤器,但是一些初始的谷歌搜索没有给我任何东西。POS模式过滤器?

是否有任何代码段,在那里,可以做我的POS模式为我筛选?

谢谢, 戴夫

编辑:完整的解决方案(使用RegexParser,和这里的消息是任意字符串),

text = nltk.word_tokenize(message) 
tags = nltk.pos_tag(text) 
grammar = r""" 
    RULE_1: {<JJ>+<NNP>*<NN>*} 
    """ 
chunker = nltk.RegexpParser(grammar) 
chunked = chunker.parse(tags) 
def filter(tree): 
    return (tree.node == "RULE_1") 
for s in chunked.subtrees(filter): 
    print s 

退房http://nltk.googlecode.com/svn/trunk/doc/book/ch07.htmlhttp://www.regular-expressions.info/reference.html更多关于创建规则。

回答

3

我认为你正在寻找RegexpChunkParser

+1

最近的链接,可能是有用的为别人:[NLTK书 - CH7 - 重庆森林(http://www.nltk.org/book/ch07.html)和[NLTK方法文档 - 在分块(HTTP: //www.nltk.org/howto/chunk.html)。 – zEro 2015-07-20 20:47:28