Ejemplo n.º 1
0
 def __init__(self, grammar_file):
     '''
 GrammarEngine.grammar returns a Grammar object 
 to get the actual dictionary, do GrammarEngine.grammar.grammar
 '''
     self.grammar = GrammarEngine(grammar_file).grammar.grammar
     self.verbose = False
Ejemplo n.º 2
0
    def __init__(self, grammar):
        self.string = ""
        self.words = []
        self.engine = GrammarEngine(grammar)
        self.RDP = RecursiveDescentParser(self.engine, False)

        self.nonterminals = self.engine.get_nonterminals(grammar)
        self.terminals = self.engine.get_terminals(grammar)
Ejemplo n.º 3
0
def component2():
    grammar_engine = GrammarEngine("component2.txt")
    grammar = grammar_engine.grammar
    parser = RecursiveDescentParser(grammar, False)
    result = parser.parse("Joe said Buster ghosted Schiller", "S")

    ##keys = grammar.keys()
    # for symbol in grammar:
    #   rules[symbol] = grammar[symbol].body
    # print(rules)
    # print(grammar.variables)
    print(result)
Ejemplo n.º 4
0
def component4():
    grammar_engine = GrammarEngine("component4.txt")
    grammar = grammar_engine.grammar
    generated_texts = []

    for i in range(1):
        text = grammar_engine.generate("origin")
        generated_texts.append(text)

    final_sentence = " ".join(generated_texts)
    print(final_sentence)
    parser = IslandParser(grammar)
    result = parser.parse(final_sentence)
    for element in result:
        substrings = element.split()
        print(substrings[0][1:] + ":" + substrings[1][:-1])
def change_verb(doc):
  '''
  Find the synonym of the verb
  '''
  verb = find_verb(doc)
  grammar = GrammarEngine("verb.txt").grammar
  rule = grammar.find(verb).rules
  index = random.randint(0, len(rule)-1)
  new_verb = str(rule[index])[7:-3]
  new_sentence = ""
  for word in doc:
    if word.text == verb:
      new_sentence = new_sentence + " " + new_verb
    elif len(new_sentence) > 0:
      new_sentence = new_sentence + " " + word.text
    else:
      new_sentence = word.text
  return new_sentence
Ejemplo n.º 6
0
        while length >= 1:
            start = 0
            while start <= len(fragments) - length:
                # get the substring
                substring = " ".join(fragments[start:start + length])
                # parse the substring
                for symbol in self.grammar.grammar.keys(
                ):  # try out all symbols
                    result = self.parser.parse(string=substring,
                                               start_symbol_name=symbol)
                    parse_already_exists = False
                    # if the result is not None, that means there was a successful parse
                    if result != None:
                        # check if the result is a subset of some other partial parse
                        for parse in self.partial_parses:
                            if result in parse:
                                parse_already_exists = True
                        # if it's not a subset of any of the existing parses, add it to the list
                        if not parse_already_exists:
                            self.partial_parses.append(result)
                # move the window
                start += 1
            # decrease the length of the expected substring
            length -= 1


if __name__ == "__main__":
    grammar = GrammarEngine("component4.txt").grammar
    parser = IslandParser(grammar=grammar, verbose=False)
    string = "Hello, I am Yemi, a senior CS  major. I live in Cassat. A usual day looks like this for me: I wake up at 11  and go to work  after having ramen  for breakfast. After that, I drop my stuff in Cassat, have lunch in LDC, and then work in Little Joy."
    print(parser.parse(string=string))