def test_extpos(): sr1 = parser.SentRep(['record']) print 'Unconstrained' display_parses(parser.parse(sr1, thread_slot)) print 'NN' ext_pos1 = parser.ExtPos() ext_pos1.addTagConstraints(parser.VectorString(['NN'])) display_parses(parser.parse(sr1, ext_pos1, thread_slot)) print 'VB' ext_pos2 = parser.ExtPos() ext_pos2.addTagConstraints(parser.VectorString(['VB'])) display_parses(parser.parse(sr1, ext_pos2, thread_slot))
def parse_tagged(self, tokens, possible_tags, rerank=True): """Parse some pre-tagged, pre-tokenized text. tokens is a sequence of strings. possible_tags is map from token indices to possible POS tags. Tokens without an entry in possible_tags will be unconstrained by POS. If rerank is True, we will rerank the n-best list.""" assert self._parser_model_loaded ext_pos = parser.ExtPos() for index in range(len(tokens)): tags = possible_tags.get(index, []) if isinstance(tags, basestring): tags = [tags] ext_pos.addTagConstraints(parser.VectorString(tags)) sentence = Sentence(tokens) parses = parser.parse(sentence.sentrep, ext_pos, self._parser_thread_slot) nbest_list = NBestList(sentence, parses) if rerank: self.rerank(nbest_list) return nbest_list
def test_multiword_extpos(): sr1 = parser.SentRep('British left waffles on Falklands .'.split()) print 'waffles = [anything]:' display_parses(parser.parse(sr1, thread_slot)) if 1: print 'waffles = VBZ/VBD/VB:' ext_pos = parser.ExtPos() ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString(['VBZ', 'VBD', 'VB'])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) display_parses(parser.parse(sr1, ext_pos, thread_slot)) print 'waffles = NNS:' ext_pos = parser.ExtPos() ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString(['NNS'])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) display_parses(parser.parse(sr1, ext_pos, thread_slot)) print 'waffles = NN/NNS:' ext_pos = parser.ExtPos() ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString(['NN', 'NNS'])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) ext_pos.addTagConstraints(parser.VectorString([])) display_parses(parser.parse(sr1, ext_pos, thread_slot))