Ejemplo n.º 1
0
 def parse_sentence(self, sentence):
     sentence = self.clear_sentence(sentence)
     words = sentence.strip().split()
     variants = [self.word_to_forms(word) for word in words]
     errors = []
     for variant in itertools.product(*variants):
         syntax = ' '.join(v.form for v in variant)
         words = [v.word for v in variant]
         try:
             builder = Parser.parse(syntax)
             thought = builder.build(words)
             # TODO какой-то подходящий выбор мысли а не возврат первого же успеха
             return thought
         except SyntaxError, e:
             errors.append("%s: %s" % (str(e), syntax))
Ejemplo n.º 2
0
 def test_grammar(self):
     syntax = """Noun[]{} Verb[]{} .[]{}"""
     sentence = (Noun("apple"), Verb("exist"), Dot())
     builder = Parser.parse(syntax)
     self.assertEqual("A apple exists.", str(builder.build(sentence)))