Beispiel #1
0
    def test_part_of_task_clusters(self):
        page = WebPage(url='somewhere', query='カメラ 買う')
        page.text = 'ヨドバシカメラに行く必要があります。お金を払ってください。' \
                    'ヨドバシカメラに行く必要があります。お金を払ってください。'
        graph = self.build_graph([page])
        answerer = TaskGraphFirstAnswerer(graph=graph, query_task='カメラ_買う')
        answerer.set_result_tasks()
        p_clusters = answerer.part_of_task_clusters
        self.assertEqual(p_clusters, [{'お金_払う', 'ヨドバシカメラ_行く'}])

        i_clusters = answerer.instance_of_task_clusters
        self.assertEqual(i_clusters, [])
Beispiel #2
0
    def test_part_of_task_clusters(self):
        page = WebPage(url='somewhere', query='カメラ 買う')
        page.text = 'ヨドバシカメラに行く必要があります。お金を払ってください。' \
                    'ヨドバシカメラに行く必要があります。お金を払ってください。'
        graph = self.build_graph([page])
        answerer = TaskGraphFirstAnswerer(graph=graph, query_task='カメラ_買う')
        answerer.set_result_tasks()
        p_clusters = answerer.part_of_task_clusters
        self.assertEqual(p_clusters, [{'お金_払う', 'ヨドバシカメラ_行く'}])

        i_clusters = answerer.instance_of_task_clusters
        self.assertEqual(i_clusters, [])
Beispiel #3
0
 def test_instance_of_task_clusters_exclude_part_of(self):
     page_1 = WebPage(url='somewhere', query='チョコレート 食べる')
     page_1.text = 'ヨドバシカメラに行く必要があります。お金を払ってください。' \
                   'ヨドバシカメラに行く必要があります。お金を払ってください。'
     page_2 = WebPage(url='elsewhere', query='チョコレート 食べる')
     page_2.text = '神社にお参りしてください。'
     page_3 = WebPage(url='anywhere', query='チョコレート 食べる')
     page_3.text = '神社にお参りしてください。'
     page_4 = WebPage(url='where', query='チョコレート 食べる')
     page_4.text = 'お金を払いましょう'
     graph = self.build_graph([page_1, page_2, page_3, page_4])
     answerer = TaskGraphFirstAnswerer(graph=graph, query_task='チョコレート_食べる')
     answerer.set_result_tasks()
     i_clusters = answerer.instance_of_task_clusters
     self.assertEqual(i_clusters, [{'神社_お参りする'}])
Beispiel #4
0
 def test_instance_of_task_clusters_exclude_part_of(self):
     page_1 = WebPage(url='somewhere', query='チョコレート 食べる')
     page_1.text = 'ヨドバシカメラに行く必要があります。お金を払ってください。' \
                   'ヨドバシカメラに行く必要があります。お金を払ってください。'
     page_2 = WebPage(url='elsewhere', query='チョコレート 食べる')
     page_2.text = '神社にお参りしてください。'
     page_3 = WebPage(url='anywhere', query='チョコレート 食べる')
     page_3.text = '神社にお参りしてください。'
     page_4 = WebPage(url='where', query='チョコレート 食べる')
     page_4.text = 'お金を払いましょう'
     graph = self.build_graph([page_1, page_2, page_3, page_4])
     answerer = TaskGraphFirstAnswerer(graph=graph, query_task='チョコレート_食べる')
     answerer.set_result_tasks()
     i_clusters = answerer.instance_of_task_clusters
     self.assertEqual(i_clusters, [{'神社_お参りする'}])
Beispiel #5
0
 def test_instance_of_task_clusters_exclude_subtype_of(self):
     answerer = TaskGraphFirstAnswerer(graph=self.graph,
                                       query_task='職業_質問する')
     answerer.set_result_tasks()
     clusters = answerer.instance_of_task_clusters
     self.assertEqual(clusters, [])
Beispiel #6
0
 def test_subtype_of_tasks(self):
     answerer = TaskGraphFirstAnswerer(graph=self.graph,
                                       query_task='職業_質問する')
     answerer.set_result_tasks()
     tasks = answerer.subtype_of_tasks
     self.assertEqual(tasks, set(['理学療法士_質問する', '医師_質問する', '看護師_質問する']))
Beispiel #7
0
        noun, cmp, verb = query.split(' ')
        query_task = '_'.join([noun, cmp, verb])

        if not g:
            print('%sのグラフが存在しません!' % query)
            pdb.set_trace()
            continue

        if not g.nodes():
            print('%sのグラフに異常があります' % query)
            continue
        query_task = '_'.join(query.split(' '))


        # answererがいらないノードをremoveしてくれてるはず
        first_answerer = TaskGraphFirstAnswerer(graph=g, query_task=query_task)
        print('answererをinstance化しました')
        first_answerer.set_result_tasks()
        print('set_result_tasksをしました')
        first_answerer.set_task_scores()

        # generalized_taskはもう計算の邪魔なので消す
        first_answerer.remove_generalized_tasks()
        first_answerer.set_united_results()
        simple_results = []
        for united_result in first_answerer.united_results:
            tasks = united_result[0][0]
            result_tasks = []
            for task in tasks:
                aspects = first_answerer.graph.node[task]['aspects']
                task_noun = task.split('_')[0]
Beispiel #8
0
 def test_instance_of_task_clusters_exclude_subtype_of(self):
     answerer = TaskGraphFirstAnswerer(graph=self.graph, query_task='職業_質問する')
     answerer.set_result_tasks()
     clusters = answerer.instance_of_task_clusters
     self.assertEqual(clusters, [])
Beispiel #9
0
 def test_subtype_of_tasks(self):
     answerer = TaskGraphFirstAnswerer(graph=self.graph, query_task='職業_質問する')
     answerer.set_result_tasks()
     tasks = answerer.subtype_of_tasks
     self.assertEqual(tasks, set(['理学療法士_質問する', '医師_質問する', '看護師_質問する']))