예제 #1
0
def main():
    g = grammar.grammar(grammar.rules_from_file(sys.argv[1]))
    l = lexicon.lexicon(lexicon.lexemes_from_file(sys.argv[2]))
    
    for i in range(10):
        print g.gen_random_sentence(l)
예제 #2
0
        try:
            rules.append(rule.rule(line.strip()))
            line_num += 1
        except:
            raise BadFileError("Rule file is invalid (line %d) '%s'" % (line_num, line))
            
    return rules, terminals
            

if __name__ == "__main__":
    rules = [
        rule.rule("S > NP VP"),
        rule.rule("NP > Art N"),
        rule.rule("VP > V"),
    ]
    
    lexemes = [
        lexeme("a", ["Art"]),
        lexeme("the", ["Art"]),
        
        lexeme("child", ["N"]),
        lexeme("man", ["N"]),
        
        lexeme("laughs", ["V"]),
        lexeme("eats", ["V"]),        
    ]
    
    lex = lexicon(lexemes)
    
    g = grammar((rules, map(constituent, ["N", "V", "Art"])))
    print g.gen_random_sentence(lex)