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, [])
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, [])
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, [{'神社_お参りする'}])
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, [{'神社_お参りする'}])
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, [])
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(['理学療法士_質問する', '医師_質問する', '看護師_質問する']))
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]
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, [])
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(['理学療法士_質問する', '医師_質問する', '看護師_質問する']))