Example #1
0
def nlp_nlidb(question):

       '''STEP1: Extracting the keywords using Parser:'''
       tree = stanford_client.to_tree(question)
       top_node = penn_treebank_node.parse(tree)
       extracted_words, Proper_Nouns = my_parser.key_words(top_node, question)
       question_type = my_parser.questionType(top_node)


       '''STEP2: Replace words with glossary terms:'''
       uniqueWords = glossary.generalizedKeywords(question, extracted_words)

       # '''STEP2.2: Extracting the related keywords:'''
       uniqueWords.append(question_type)
       '''STEP3: Adding some manually defined rules'''

       allWords, conditions, target, component_value = answerGenerator(question, uniqueWords)

       # To be handled differently, this is here only so the master branch can run.
       allWords = filter(lambda x: x != None, allWords)
       allWords = allWords + list(target)
       allWords = set(allWords)

       '''Creating Links between allWords and tables' entities'''
       tables = set(semanticNet.tables(allWords))
       '''required_values is not being used in our system anymore'''
       required_values =''

       debug.debug_statement([allWords, required_values, target, conditions, tables, question_type, Proper_Nouns, component_value])

       return allWords, required_values, target, conditions, tables, question_type, Proper_Nouns, component_value
    def extract_rules(self, tree):
        tree_rules = []
        tree = ptn.parse(tree)
        queue = Queue()
        queue.push(tree)
        i = 0
        while not queue.empty():
            t = queue.pop()
            rule = Rule(t.node_type, [])

            for child in t.children:
                queue.push(child)
                rule.add_child(child.node_type)

            tree_rules.append(rule)

        if None in tree_rules:
            raw_input('>>>')

        return np.array(tree_rules)