2014-09-10 3 views
0

Я использую RegexpParser от NLTK, чтобы получить фразы из 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>} 

Где <> является групповым символом..

EDIT:
Нашел довольно плохую способ сделать это, что на самом деле не включает в себя всех персонажей. По-прежнему будет ценить специальный символ подстановки.

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

Вы можете не заменить '<[A-Z] + | [пунктуатором] +> *' с '' <.*?> или что-то подобное? '.' обычно обозначает символы, отличные от новой строки, но я не уверен в RegexpParser от NLTK. – Sam

ответ

Смежные вопросы