2014-09-10 50 views
0

我使用NLTK的RegexpParser从POS标记的单词中获取短语。例如:NLTK RegEx Chunker - 通配符匹配任何POS标签?

grammar = """ 
     FOUND:{<NNP>+<CD>+<,>+<CD>} 
     ... 
     """ 

pos_tagged_words = [('February', 'NNP'), ('14', 'CD'), (',', ','), ('1993', 'CD')] 

result = nltk.RegexpParser(grammar).parse(pos_tagged_words) 

有什么办法匹配通配符标签吗?如果这个工作,我会寻找这样的事情:

FOUND:{<NNP>?<.>*<VBZ>} 

哪里<>是通配符。

编辑:
发现一个非常糟糕的方式来做到这一点,并不包括所有字符。仍然会喜欢专用的通配符字符。

FOUND:{<NNP>?<[A-Z]+|[:punct:]+>*<VBZ>} 
+0

你能不能代替'<[A-Z] + | [:PUNCT:] +> *'和''<.*?>或类似的东西? '.'通常代表非换行符,但我不确定NLTK的RegexpParser。 – Sam 2014-09-10 19:41:23

回答

1

试试这个:

{<NNP>?<.*>*<VBZ>}