def solve_room_pos(self, entity): response = "\n您当前在总馆北区五层\n" room = entity['room'][0] #print(entity) ans_room = room if room.find("_") != -1: arr = room.split("_") ans_room = arr[2] #print("room",room) area = Neo4jPrepare.get_relation(room, '馆区') #print(area) if area[0]['office_name'] != '总馆北区': response += ans_room + '在' + area[0]['office_name'] + ",位于" + area[ 0]['position'] + "\n" return [response] floor = Neo4jPrepare.get_relation(room, '楼层') #print(floor) if floor[0]['office_name'] != '总馆北区五层': response += ans_room + '在' + floor[0][ 'office_name'] + ", 直走340米您就能找到最近的电梯。\n" return [response] respo = self.navi(room) response += respo img = self.get_pic() return [response, img]
def solve_restype_read(self, entity): restype = entity['restype'][0] res = Neo4jPrepare.get_relation(restype, '馆室') ans = "\n" + restype + "存放在" for r in res[:-1]: ans += r['office_name'] + "," ans += res[-1]['office_name'] + "\n" card = Neo4jPrepare.get_relation(res[-1]['office_name'], '证件') for c in card: ans += "年龄" + c['age'] + "可持" + c['office_name'] + "进入馆室\n" return ans
def solve_library_res(self): res = Neo4jPrepare.get_relation("国家图书馆", "馆区") ans = "" for r in res: area_dict = {'area': [r['office_name']]} ans += self.solve_area_res_a(area_dict) return ans
def solve_res_floor(self, entity): resource = entity['res'][0] floor = entity['floor'][0] res = Neo4jPrepare.get_relation(resource, '馆室') room_name = res[0]['office_name'] if room_name.find("_") != -1: room_name = res[0]['office_name'].split("_")[2] des_floor = Neo4jPrepare.get_relation(res[0]['office_name'], '楼层') ans = "\n" if floor == des_floor[0]['office_name']: ans += resource + "存放在" + floor ans += self.solve_count_res(entity) else: ans += resource + "不存放在" + floor + "\n" + resource + "存放在" + des_floor[ 0]['office_name'] + "的" + room_name return ans
def solve_library_area(self): res = Neo4jPrepare.get_relation("国家图书馆", "馆区") print(res) ans = "\n国家图书馆包括" for r in res[:-1]: ans += r['office_name'] + "," ans += res[-1]['office_name'] + "\n" return ans
def solve_recommend_book2(self, age, sex): kind = self.get_kind(age,sex) ans = "猜测您可能喜欢"+kind+"类书籍,图书馆有" goods = Neo4jPrepare.get_entity_for_kind('精品',kind) for g in goods: ans += g['office_name']+",存放在" room = Neo4jPrepare.get_relation(g['office_name'],'馆室') ans += room[0]['office_name']+"\n" return ans
def solve_goods_library(self, entity): goods = entity['goods'][0] ans = "国家图书馆有" + goods + ",存放在" room = Neo4jPrepare.get_relation(goods, '馆室') room_arr = [x['office_name'] for x in room] for room_name in room_arr[:-1]: ans += room_name + "," ans += room_arr[-1] + "\n" return ans
def solve_recommend_book(self, age, sex): kind = self.get_kind(age,sex) ans = "猜测您可能喜欢"+kind+"类书籍,图书馆有" goods = Neo4jPrepare.get_entity_for_kind('精品', kind) good_index = random.randint(0, len(goods) - 1) g = goods[good_index] ans += g['office_name'] + ",存放在" room = Neo4jPrepare.get_relation(g['office_name'], '馆室') ans += room[0]['office_name'] + "\n" return ans
def solve_recommend_book_other(self): ans = "推荐你借阅图书馆的" goods = Neo4jPrepare.get_entity_for_kind('精品','其他') good_index = random.randint(0, len(goods)-1) g = goods[good_index] ans += g['office_name']+",存放在" room = Neo4jPrepare.get_relation(g['office_name'],'馆室') ans += room[0]['office_name']+"\n" return ans
def solve_return_back_res(self,entity): resource = entity['res'][0] ans = "\n" res_res = Neo4jPrepare.get_relation(resource,'馆室') print(res_res) if len(res_res)>0: ans += resource+"存放于"+res_res[0]['office_name']+",请前往"+res_res[0]['office_name']+"归还书籍,同时你也可以前往总馆南区24小时自助还书处归还书籍\n" else: ans += '你可以前往总馆南区24小时自助还书处归还书籍\n' return ans
def solve_res_borrow(self,entity): res = entity['res'][0] room_res = Neo4jPrepare.get_relation(res,'馆室') ans = "\n" if room_res[0]['borrow'] == 1: ans+=res+"可以外借\n" elif room_res[0]['borrow'] == 2: ans += res + "不可以外借,但可以复制与扫描\n" else: ans += res + "不可以外借,仅供借阅\n" return ans
def solve_library_time(self, entity): library = entity['library'][0] res = Neo4jPrepare.get_relation(library, '馆区') # print(res) ans = "\n" ans += library + "包括" + str(len(res)) + "个馆区\n" for r in res: ans += r['office_name'] + "开放日期为" + r['date'] + "\n" ans += "工作开放时间为" + r['worktime'] + "\n" ans += "周末开放时间为" + r['weektime'] + "\n" return ans
def solve_goods_pos(self, entity): goods = entity['goods'][0] response = "\n" + goods + "存放于" res = Neo4jPrepare.get_relation(goods, '馆室') for r in res: response += r['office_name'] + "\n" # dict = {} # dict['room'] = [ans[0]['office_name']] # ans = self.solve_room_pos(dict)[0] # response += ans[0] return response
def solve_room_floor(self, entity): floor = entity['floor'][0] room = entity['room'][0] res = Neo4jPrepare.get_relation(room, '楼层') ans = "\n" room_name = room if room.find("_") != -1: room_name = room.split("_")[2] if res[0]['office_name'] == floor: ans += room_name + "在" + floor else: ans += room_name + "不在" + floor + "\n" + room_name + "在" + res[0][ 'office_name'] + "\n" return ans
def solve_res_search(self,entity): resource = entity['res'][0] ans = "\n国家图书馆提供目录查询服务,您可以前往目录查询区查询\n" room_res_search = Neo4jPrepare.get_relation('目录服务', '馆室') res_search = [x['office_name'] for x in room_res_search] room = Neo4jPrepare.get_relation(resource, '馆室') room_arr = [x['office_name'] for x in room] ans_arr=[] for sub_room in room_arr: if sub_room in res_search: ans_arr.append(sub_room) if '数字共享空间' in room_arr: ans_arr.append("数字共享空间") if len(ans_arr)>0: ans += "您还可以去:\n" for sub_ans in ans_arr[:-1]: ans += sub_ans+"," ans += ans_arr[-1]+"进行目录查询\n" return ans
def solve_res_room(self, entity): room = entity['room'][0] resource = entity['res'][0] res = Neo4jPrepare.get_relation(resource, '馆室') ans = "\n" if res[0]['office_name'] == room: ans += resource + "存放在" + room ans += self.solve_count_res(entity) else: des_room = res[0]['office_name'] if res[0]['office_name'].find(u"_") != -1: des_room = res[0]['office_name'].split("_")[2] ans += resource + "不存放在" + room + "\n" + resource + "存放在" + des_room + "\n" return ans
def solve_service_exit(self, entity): # print(entity) service = entity['service'] # res = Neo4jPrepare.get_property(service) ans = "\n" if len(service) > 0: ans += "国家图书馆提供" + service[0] + "\n" room = Neo4jPrepare.get_relation(service[0], "馆室") ans = "\n" + "您可以去" for r in room[:-1]: ans += r['office_name'] + "," ans += room[-1]['office_name'] + "接受该服务\n" else: ans += "很抱歉,国家图书馆不提供该服务" return ans
def solve_task_describe(self, entity): task = entity['task'][0] #print(service) res = Neo4jPrepare.get_property(task) #print(res.keys()) ans = '' if res['discribe'] != 'nan': ans = "\n" + task + "指" + res['discribe'] else: room_res = Neo4jPrepare.get_relation(task, '馆室') for r in room_res: if r['describe'] != 'nan': ans += "\n" + r['office_name'] + r['describe'] if ans == '': ans = "很抱歉,暂时没有" + task + "的描述信息\n" return ans
def solve_task_pos(self, entity): service = entity['task'][0] room = Neo4jPrepare.get_relation(service, "馆室") ans = "\n" if len(room) > 0: ans += "您可以去" for r in room[:-1]: ans += r['office_name'] + "," ans += room[-1]['office_name'] if '服务' in service: ans += "进行" + service[0:service.find("服")] + "\n" else: ans += "进行" + service + "\n" else: ans += "很抱歉,国家图书馆不提供" + service + "\n" return ans
def solve_count_res(self, entity): resource = entity['res'][0] res = Neo4jPrepare.get_property(resource) ans = "\n" + resource + "存放在" room = Neo4jPrepare.get_relation(resource, '馆室') room_arr = [x['office_name'] for x in room] #print(room) for room_name in room_arr[:-1]: ans += room_name + "," ans += room_arr[-1] + "\n" if res['count'] != 'nan': ans += resource + "的数量是:" + str(res['count']) + "本(份)\n" else: ans += "很抱歉," + resource + "暂时没有数据信息\n" return ans
def solve_task_exit(self, entity): # print(entity) service = entity['task'] # res = Neo4jPrepare.get_property(service) ans = "\n" if len(service) > 0: ans += "国家图书馆提供" + service[0] + "\n" # print("aaa",ans) room = Neo4jPrepare.get_relation(service[0], "馆室") if len(room) <= 0: return ans ans += "您可以去" for r in room[:-1]: ans += r['office_name'] + "," ans += room[-1]['office_name'] + "办理该业务\n" else: ans += "很抱歉,国家图书馆不能办理该业务" return ans
def solve_task_time(self, entity): task = entity['task'][0] res = Neo4jPrepare.get_property(task) ans = "\n" if res['date'] != 'nan': ans += "业务日期:" + res['date'] + "\n" if res['worktime'] != 'nan': ans += "工作日服务时间为" + str(res['worktime']) + "\n" if res['weektime'] != 'nan': ans += "工作日服务时间为" + str(res['weektime']) + "\n" if ans == "\n": res_room = Neo4jPrepare.get_relation(task, "馆室") for room in res_room: if room['open_date'] != 'nan': ans += room['office_name'] + "的开放日为" + room['open_date'] if room['work_open'] != 'nan': ans += ",工作日开放时间为" + room['work_open'] if room['week_open'] != 'nan': ans += ",周末或节假日开放时间为" + room['week_open'] + "\n" return ans
def solve_restype_pos(self, entity): restype = entity['restype'][0] ans = "\n" room = Neo4jPrepare.get_relation(restype, '馆室') if len(room) > 0: ans += restype + "存放在" for sub_room in room[:-1]: ans += sub_room['office_name'] + "," ans += room[-1]['office_name'] + "\n" """ res = Neo4jPrepare.get_reverse_relation(restype,'资源') if len(res) > 0: ans += restype+"包括:\n" for r in res: #print(r) room = Neo4jPrepare.get_relation(r['office_name'],'馆室') ans += r['office_name']+",存放在" for sub_room in room[:-1]: ans += sub_room['office_name']+"," ans += room[-1]['office_name']+"\n" """ return ans
def solve_restype_borrow(self,entity): restype = entity['restype'][0] res_res = Neo4jPrepare.get_reverse_relation(restype,'资源') #print(res_res) yes_room = [] copy_room = [] no_room = [] for res in res_res: room_res = Neo4jPrepare.get_relation(res['office_name'],'馆室') for r in room_res: room = r['office_name'] if r['borrow'] == 1: yes_room.append(room) elif r['borrow'] == 2: copy_room.append(room) else: no_room.append(room) copy_room = np.unique(copy_room) ans = "\n" if len(yes_room)>0: ans += "存放在" for y in yes_room[:-1]: ans += y+"," ans += yes_room[len(yes_room)-1]+"的"+restype+"可以外借\n" if len(copy_room)>0: ans += "存放在" for c in copy_room[:-1]: ans += c+"," ans += copy_room[len(copy_room) - 1] + "的" + restype + "可以不外借,但可以复制和扫描\n" if len(no_room)>0: ans += "存放在" for y in no_room[:-1]: ans += y+"," ans += no_room[len(no_room)-1]+"的"+restype+"不可以外借,仅供借阅\n" return ans