コード例 #1
0
    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]
コード例 #2
0
ファイル: Task_business.py プロジェクト: llllxf/libot
    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
コード例 #3
0
 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
コード例 #4
0
 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
コード例 #5
0
 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
コード例 #6
0
ファイル: Task_business.py プロジェクト: llllxf/libot
 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
コード例 #7
0
    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
コード例 #8
0
ファイル: Task_business.py プロジェクト: llllxf/libot
 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
コード例 #9
0
ファイル: Task_business.py プロジェクト: llllxf/libot
    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
コード例 #10
0
ファイル: Task_business.py プロジェクト: llllxf/libot
 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
コード例 #11
0
ファイル: Task_business.py プロジェクト: llllxf/libot
 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
コード例 #12
0
 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
コード例 #13
0
    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
コード例 #14
0
 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
コード例 #15
0
ファイル: Task_business.py プロジェクト: llllxf/libot
    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
コード例 #16
0
    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
コード例 #17
0
ファイル: Task_business.py プロジェクト: llllxf/libot
 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
コード例 #18
0
 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
コード例 #19
0
    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
コード例 #20
0
    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
コード例 #21
0
 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
コード例 #22
0
 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
コード例 #23
0
 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
コード例 #24
0
ファイル: Task_business.py プロジェクト: llllxf/libot
    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