WO2020103183A1 - System and method for constructing database - Google Patents

System and method for constructing database

Info

Publication number
WO2020103183A1
WO2020103183A1 PCT/CN2018/118617 CN2018118617W WO2020103183A1 WO 2020103183 A1 WO2020103183 A1 WO 2020103183A1 CN 2018118617 W CN2018118617 W CN 2018118617W WO 2020103183 A1 WO2020103183 A1 WO 2020103183A1
Authority
WO
WIPO (PCT)
Prior art keywords
poi
indexing
feature data
labels
groups
Prior art date
Application number
PCT/CN2018/118617
Other languages
French (fr)
Inventor
Lingyu Zhang
Qi SHAO
Yan Liu
Jieping Ye
Original Assignee
Beijing Didi Infinity Technology And Development Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology And Development Co., Ltd. filed Critical Beijing Didi Infinity Technology And Development Co., Ltd.
Publication of WO2020103183A1 publication Critical patent/WO2020103183A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries

Definitions

  • the present disclosure generally relates to online to offline service, and more particularly, to systems and methods for constructing a database.
  • POIs points of interest
  • these query about POIs is ambiguous and unclear, resulting in retrieved POIs inaccurate.
  • the query about POIs may be the phrase “delicious restaurant, ” which may be too ambiguous to retrieve accurate POIs.
  • the data and/or information of the POIs stored in the current databases may not be comprehensive and complete so that they cannot provide accurate information of the POIs to the user. Therefore, it is desirable to provide systems and methods for constructing an efficient database to retrieve POIs via query.
  • a system for constructing a database may include at least one storage medium including a set of instructions, and at least one processor in communication with the at least one storage medium.
  • the at least one processor may be directed to cause the system to obtain first feature data of a point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform.
  • POI point of interest
  • the at least one processor may also be directed to cause the system to determine one or more groups of indexing labels. Each group of the one or more groups of indexing labels may be ranked into a plurality of levels, each of which includes one or more indexing labels.
  • the at least one processor may also be directed to cause the system to match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI.
  • the at least one processor may further be directed to cause the system to store the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
  • the first feature data of the POI may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, a type of the POI, etc.
  • the second feature data of the POI may include an evaluation score of the POI, a number of an evaluation of the POI, a number of consumption times of the POI, a number of reviews of the POI, etc.
  • the first online platform may be configured to provide a map service.
  • the second online platform may be configured to provide a review service.
  • the at least one processor may be directed to cause the system to obtain the second feature data of the POI from the second online platform using a Python technique.
  • the at least one processor may be directed to cause the system to compare the POI with at least a portion of indexing labels of one of the one or more groups of indexing labels from a highest level to a lowest level.
  • the at least one processor may also be directed to cause the system to determine the target indexing label based on the comparison.
  • the at least one processor may be directed to cause the system to determine a similarity between the POI with the each indexing label of the one of the one or more groups of indexing labels.
  • the at least one processor may also be directed to cause the system to determine the target indexing label having the similarity satisfying a condition.
  • the system may further comprise a data exchange port connected to one or more online platforms for providing online-to-offline services.
  • the at least one processor may be further directed to cause the system to obtain a query for inquiring about the POI specified by a user via a client terminal.
  • the at least one processor may be further directed to cause the system to retrieve data associated with one or more candidate POIs matching with the query from the database.
  • the at least one processor may be further directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  • the at least one processor may be further directed to cause the system to obtain historical data associated with the user from the client terminal.
  • the at least one processor may be further directed to cause the system to recommend the at least one of the one or more candidate POIs to the user based on both the retrieved data associated with the one or more candidate POIs and the historical data associated with the user.
  • a system for POIs recommendation may comprise a data exchange port connected to one or more online to offline service platforms for providing online-to-offline services, at least one storage medium including a set of instructions and at least one processor in communication with the at least one storage medium.
  • the at least one processor may be directed to cause the system to obtain a query about a POI specified by a user via a client terminal.
  • the at least one processor may also be directed to cause the system to retrieve data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs.
  • the database may be constructed by determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level.
  • the database may also be constructed by obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI.
  • POI point of interest
  • the database may also be constructed by obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI.
  • the database may also be constructed by matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI.
  • the database may further be constructed by storing the first feature data, the second feature data of the POI, and the matched target indexing label.
  • the at least one processor may further be directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  • a method for constructing a database may include obtaining first feature data of a point of interest (POI) from a first online service platform and obtaining second feature data of the POI from a second online service platform.
  • the method may also include determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which includes one or more indexing labels.
  • the method may also include matching the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI.
  • the method may further include storing the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
  • a method for POIs recommendation may include obtaining a query about a POI specified by a user via a client terminal and retrieving data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs.
  • the method may include recommending at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  • the database may be constructed by determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level.
  • the database may also be constructed by obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI.
  • the database may also be constructed by obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI.
  • the database may also be constructed by matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI.
  • the database may further be constructed by storing the first feature data, the second feature data of the POI, and the matched target indexing label.
  • the at least one processor may further be directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  • a non-transitory computer-readable storage medium embodying a computer program product.
  • the computer program product including instructions may be configured to cause a computing device to obtain first feature data of a point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform.
  • the computer program product including instructions may be configured to cause the computing device to determine one or more groups of indexing labels. Each group of the one or more groups of indexing labels may be ranked into a plurality of levels, each of which includes one or more indexing labels.
  • the computer program product including instructions may be configured to cause the computing device to cause the system to match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI.
  • the computer program product including instructions may be configured to cause the computing device to store the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
  • a non-transitory computer-readable storage medium embodying a computer program product.
  • the computer program product including instructions may be configured to cause a computing device to obtain a query about a POI specified by a user via a client terminal and retrieve data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs.
  • the computer program product including instructions may be configured to cause the computing device to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  • the database may be constructed by determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level.
  • the database may also be constructed by obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI.
  • POI point of interest
  • the database may also be constructed by obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI.
  • the database may also be constructed by matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI.
  • the database may further be constructed by storing the first feature data, the second feature data of the POI, and the matched target indexing label.
  • the at least one processor may further be directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  • a system for constructing a database may includes an obtaining module configured to obtain first feature data of a point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform; a determination module configured to determine one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which include one or more indexing labels; a match module configured to match the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI; and a storing module configured to store the first feature data, the second feature data of the POI, and the matched target indexing label.
  • POI point of interest
  • FIG. 1 is a schematic diagrams illustrating an exemplary database system according to some embodiments of the present disclosure
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device on which a processing engine may be implemented according to some embodiments of the present disclosure
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device on which a terminal may be implemented according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary terminal according to some embodiments of the present disclosure.
  • FIG. 5 is a flowchart illustrating an exemplary process for constructing a database according to some embodiments of the present disclosure
  • FIG. 6 is a flowchart illustrating an exemplary process for recommending a POI to a client terminal according to some embodiments of the present disclosure
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a target indexing label according to some embodiments of the present disclosure
  • FIG. 8 is schematic diagrams illustrating an exemplary structure of a database system according to some embodiments of the present disclosure.
  • FIG. 9 is schematic diagrams illustrating an exemplary database according to some embodiments of the present disclosure.
  • system, ” “engine, ” “unit, ” “module, ” and/or “block” used herein are one method to distinguish different components, elements, parts, section or assembly of different level in ascending order. However, the terms may be displaced by other expression if they achieve the same purpose.
  • module, ” “unit, ” or “block, ” as used herein refers to logic embodied in hardware or firmware, or to a collection of software instructions.
  • a module, a unit, or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable medium or other storage device.
  • a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or from themselves, and/or may be invoked in response to detected events or interrupts.
  • Software modules/units/blocks configured for execution on computing devices (e.g., processor 220 as illustrated in FIG.
  • a computer-readable medium such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) .
  • a computer-readable medium such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) .
  • Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device.
  • Software instructions may be embedded in a firmware, such as an EPROM.
  • hardware modules/units/blocks may be included in connected logic components, such as gates and flip-flops, and/or can be includedof programmable units, such as programmable gate arrays or processors.
  • modules/units/blocks or computing device functionality described herein may be implemented as software modules/units/blocks, but may be represented in hardware or firmware.
  • the modules/units/blocks described herein refer to logical modules/units/blocks that may be combined with other modules/units/blocks or divided into sub-modules/sub-units/sub-blocks despite their physical organization or storage. The description may be applicable to a system, an engine, or a portion thereof.
  • the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
  • FIG. 1 is a schematic diagram of an exemplary online to offline service system 100 according to some embodiments of the present disclosure.
  • the online to offline service system may be an online to offline service platform for transportation services (e.g., taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, etc. ) , online navigation services, online review services, meal booking services, online shopping services, etc.
  • the online to offline service system 100 may include a server 110, a network 120, a storage device130, and a client terminal 140.
  • the server 110 may include a processing engine 112.
  • the processing engine 112 may be configured to process information and/or data relating to one or more points of interest (POIs) .
  • the processing engine 112 may obtain data and/or information relating to the POIs from one or more online or offline service platforms (e.g., a review service platform, a map service platform, etc. ) to construct one or more databases associated with the POIs.
  • the information and/or data relating to one or more points of interest (POIs) may include feature data of each of the POIs.
  • Exemplary feature data of a POI may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, a type of the POI, an evaluation score of the POI, a number of consumption times of the POI, a number of reviews of the POI, or the like, or any combination thereof.
  • the processing engine 112 may construct a database of the POIs based on the feature data relating to the POIs.
  • the processing engine 112 may determine a plurality of groups of indexing labels. Each group of the plurality of indexing labels may be ranked into a plurality of levels.
  • the processing engine 112 may match a POI with a target indexing label from the one or more groups of indexing labels based on the feature data of the POI and store the feature data of the POI, and the matched target indexing label for forming a database in, for example, the storage device 130, or any other storage.
  • the processing engine 112 may receive a query about one or more POIs generated by a user from the client terminal 140.
  • the processing engine 112 may retrieve and/or determine one or more candidate POIs from the one or more databases constructed by the processing engine 112.
  • the processing engine 112 may further transmit a signal including the one or more candidate POIs to the client terminal 140.
  • the signal may be also configured to cause the client terminal 140 to display the one or more candidate POIs to the user.
  • the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) .
  • the processing engine 112 may include one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • ASIP application-specific instruction-set processor
  • GPU graphics processing unit
  • PPU physics processing unit
  • DSP digital signal processor
  • FPGA field programmable gate array
  • PLD
  • the server 110 may be a single server, or a server group.
  • the server group may be centralized, or distributed (e.g., server 110 may be a distributed system) .
  • the server 110 may be local or remote.
  • the server 110 may access information and/or data stored in the storage device 130 via the network 120.
  • the server 110 may connect to the storage device 130 to access stored information and/or data.
  • the server 110 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
  • the network 120 may facilitate exchange of information and/or data.
  • one or more components of the online to offline service system 100 may transmit information and/or data to other component (s) in the online to offline service system 100 via the network 120.
  • the server 110 may obtain data or information relating to one or more POIs from one or more online to offline service platforms implemented on the client terminal 140 via the network 120.
  • the client terminal 140 may send a query about POIs and related information or data via an online to offline service platform (e.g., a transportation service platform) .
  • the network 120 may be any type of wired or wireless network, or combination thereof.
  • the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof.
  • the network 120 may include one or more network access points.
  • the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2... through which one or more components of the online to offline service online to offline service system 100 may be connected to the network 120 to exchange data and/or information between them.
  • wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2... through which one or more components of the online to offline service online to offline service system 100 may be connected to the network 120 to exchange data and/or information between them.
  • the storage device 130 may store data and/or instructions.
  • the storage device 130 may store data or information relating to one or more POIs provided by one or more online service platforms (e.g., a map service platform, a review service platform, etc. ) .
  • the storage device 130 may store feature data relating to the one or more POIs determined by the processing engine 112.
  • the storage device 130 may store a plurality of groups of indexing labels and corresponding POIs.
  • the storage device 130 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure.
  • the storage device 130 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof.
  • Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc.
  • Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
  • Exemplary volatile read-and-write memory may include a random-access memory (RAM) .
  • Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc.
  • Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
  • the storage device 130 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the storage device 130 may include at least one network port to communicate with other devices in the online to offline service system 100.
  • the storage device 130 may be connected to the network 120 to communicate with one or more components of the online to offline service system 100 (e.g., the server 110, the client terminal 140) via the at least one network port.
  • One or more components in the online to offline service system 100 may access the data or instructions stored in the storage device 130 via the network 120.
  • the storage device 130 may be directly connected to or communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the client terminal 140) .
  • the storage device 130 may be part of the server 110.
  • the client terminal 140 may be any type of devices that used by a user to query needed information.
  • the client terminal 140 may send a query to the server 110.
  • the user of the client terminal 140 may be any organization or individual that sends a query, for example, an address of shopping mall, a delicious western restaurant, or the like, or any combination thereof.
  • the client terminal 140 may include any type of devices, for example, a mobile device, an electronic device, an automobile, or the like, or any combination thereof.
  • the client terminal 140 may include a mobile device 140-1, a laptop computer 140-2, a desktop computer 140-3, a built-in device in a motor vehicle 140-4, or the like, or any combination thereof.
  • the built-in device 140-3 may include an onboard computer, an onboard television, an onboard positioning system, etc.
  • the mobile device 140-1 may include a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
  • the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
  • the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a Google Glass TM , a RiftCon TM , a Fragments TM , a Gear VRTM, etc.
  • the client terminal 140 may be a device with positioning technology for locating the position of the client terminal 140 and/or the user thereof.
  • the client terminal 140 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
  • the client terminal 140 may send and/or receive data and/or information relating to a POI via a user interface to and/or from the server 110.
  • the user interface may be in form of an application for an online to offline service implemented on the client terminal 140.
  • the user interface may be configured to facilitate communication between the client terminal 140 and a user associated with client terminal 140.
  • the user interface may receive an input of a request (or demand, or query) for inquiring a POI from the user through, for example, a user interface screen.
  • the client terminal 140 may send the request (or demand, or query) for inquiring a POI to the server 110 via the user interface.
  • the processing device 120 may retrieve and/or determine one or more candidate POIs from a database constructed by the server 110 as described elsewhere in present disclosure. In some embodiments, the processing device 120 may transmit a signal including the one or more candidate POIs to the client terminal 140 via the user interface. In some embodiments, the server 110 may further recommend one or more targets POIs based on the one or more candidate POIs to the client terminal 140 via the user interface.
  • an element or component of the online to offline service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals.
  • a processor of the client terminal 140 may generate an electrical signal encoding the request.
  • the processor of the client terminal 140 may then transmit the electrical signal to an output port.
  • the output port may be physically connected to a cable, which further may transmit the electrical signal to an input port of the server 110.
  • the output port of the client terminal 140 may be one or more antennas, which convert the electrical signal to electromagnetic signal.
  • an electronic device such as the client terminal 140 and/or the server 110
  • when a processor thereof processes an instruction, transmits out an instruction, and/or performs an action the instruction and/or action is conducted via electrical signals.
  • the processor retrieves or saves data from a storage medium, it may transmit out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium.
  • the structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device.
  • an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the client terminal 140 may be implemented according to some embodiments of the present disclosure.
  • the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
  • the computing device 200 may be used to implement any component of online to offline service system 100 that perform one or more functions disclosed in the present disclosure.
  • the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof.
  • only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
  • the computing device 200 may include COM ports 250 connected to and from a network connected thereto to facilitate data communications.
  • the COM port 250 may refer to any network port, information exchange port, or any information transmitting port to facilitate data communications.
  • the computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions.
  • the processor may include interface circuits and processing circuits therein.
  • the interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process.
  • the processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals.
  • the processing circuits may also generate electronic signals including the conclusion or the result (e.g., the feature data of a POI) and a triggering code.
  • the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the client terminal 140) in the online to offline service system 100.
  • the trigger code may include an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) .
  • the trigger code may be configured to rend the operation system (or the application) of the electronic device to generate a presentation of the conclusion or the result (e.g., the feature data of a POI) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
  • the exemplary computing device may include the internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device.
  • the exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other types of non-transitory storage medium to be executed by the processor 220.
  • the methods and/or processes of the present disclosure may be implemented as the program instructions.
  • the exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other types of non-transitory storage medium to be executed by the processor 220.
  • the program instructions may be compatible with the operation systems for providing the online to offline service.
  • the computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components.
  • the computing device 200 may also receive programming and data via network communications.
  • processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors.
  • the processor of the computing device 200 executes both operation A and operation B, it should be understood that operation A and operation B may also be performed by two different processors jointly or separately in the computing device 200 (e.g., the first processor executes operation A and the second processor executes operation B, or the first and second processors jointly execute operations A and B) .
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
  • the mobile device 300 may include a communication unit 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390.
  • the CPU may include interface circuits and processing circuits similar to the processor 220.
  • any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
  • a mobile operating system 370 e.g., iOS TM , Android TM , Windows Phone TM , etc.
  • one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340.
  • the applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to a voice request for a service.
  • User interactions with the information stream may be achieved via the I/O 350 and provided to the processing engine 112 and/or other components of the AI system 100 via the network 120.
  • the communication unit 310 may be any information exchange port, information transmitting port, or network port to facilitate data communications.
  • computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the online to offline service system 100, and/or other components of the online to offline service system 100 described with respect to FIGs. 1-7) .
  • the hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to provide a service in response to a voice request as described herein.
  • a computer with user interface elements may be used to implement a personal computer (PC) or another type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
  • an element of the online to offline service system 100 may perform through electrical signals and/or electromagnetic signals.
  • a processor of the client terminal 140 may generate electrical signals encoding the accident report.
  • the processor of the client terminal 140 may then send the electrical signals to at least one information receiving port of an information providing system associated with the client terminal 140.
  • an electronic device such as the client terminal 140, and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals.
  • the processor when it retrieves or saves data from a storage medium (e.g., the storage device 130) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium.
  • the structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device.
  • an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
  • the processor After the processer of the server 110 determining a result, the processor may generate electric signals encoding the result, and send the electric signals to at least one information transimitting port of an information receiving system.
  • FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure.
  • the processing engine 112 may include an obtaining module 410, a determination module 420, a match module 430, and a storing module 440.
  • the obtaining module 410 may be configured to obtain feature data of the POI from online service platform.
  • the obtaining module 410 may be configured to obtain first feature data from a first online to offline service platform.
  • the first feature data may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, or a type of the POI, or the like, or any combination thereof.
  • the first online to offline service platform may configured to provide a navigation and/or map service, such as Baidu Map, Google Map, Amap, Tencent Map, Beidou Map, GPS Map, Sogou Map, etc.
  • the obtaining module 410 may be configured to obtain second feature data from a second online to offline service platform.
  • the second feature data may include an evaluation score of the POI, a number of consumption times of the POI, or a number of reviews of the POI, or the like, or any combination thereof.
  • the determination module 420 may be configured to determine one or more groups of indexing labels.
  • An indexing label may be configured to denote a characteristic (e.g., types) of a POI, such as the type of the POI, the tag of the POI, etc.
  • Each group of the one or more groups of indexing labels may be ranked into a plurality of levels.
  • Each of the plurality of levels in one group may include one or more indexing labels.
  • An indexing label may be configured to denote a characteristic (e.g., types) of a POI, such as the type of the POI, the tag of the POI, etc.
  • an indexing label may include “Movie” , “Hotel” , “Tourism” , “Beauty” , etc.
  • An indexing label with a higher level in the each group may have a higher priority for searching than an indexing label with a lower level.
  • a first indexing label in one group may be “Food”
  • a second indexing label in the one group may be “Fast Food” , or “Chinese Food” , or “Coffee” , or “Barbecue” , etc.
  • a first indexing label in another group may be “Tourism”
  • a second indexing in the another group may be “Exhibition” , “Attractions” , “Zoo” , etc.
  • the determination module 420 may determine one or more indexing labels in a group based on feature data of the POIs (e.g., the first feature data) .
  • the first feature data of a POI may include one or more types or tags of the POI.
  • the determination module 420 may designate the types or tags of the POI as one or more levels of indexing labels.
  • the types or tags of a POI “Chongqing Hot Pot” obtained from the first online to offline service platform may be “Food” and “Hot Pot. ”
  • the determination module 420 may designate “Food” as an indexing label with a first level (or highest level) , and designate “Hot Pot” as an indexing label with a second level (or secondary level) lower than the first level.
  • the matching module 430 may be configured to match the POI with one or more target indexing labels from the one or more groups of indexing labels.
  • the matching module 430 may determine a target group the POI belongs from the plurality of groups of indexing labels by comparing the POI with indexing labels having the same level in each of the plurality of groups of indexing labels. For example, the indexing labels having the same level in each of the plurality of groups of indexing labels may have the highest level (or first level) .
  • the matching module 430 may determine the target group based on the comparison. For example, the matching module 430 may determine similarities between the first feature data of the POI and the indexing labels having the same level in each of the plurality of groups of indexing labels.
  • the matching module 430 may determine the target group whose indexing label has a maximum similarity with the first feature data. Then the matching module 430 may match the POI with one or more targets indexing labels with different levels in the target group. In some embodiments, the matching module 430 may match a plurality of POIs with corresponding target indexing labels to form multiple databases corresponding to the target indexing labels. For example, if the target indexing labels is “Coffee” , the processing engine 112 may form a coffee database including a plurality of cafes and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of cafes.
  • the target indexing labels is “Coffee”
  • the processing engine 112 may form a coffee database including a plurality of cafes and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of cafes.
  • the storing module 440 may be configured to store the first feature data, the second feature data of the POI, and the matched target indexing labels to form a database.
  • the storing module 440 may store the first feature data, the second feature data of the POI, and the matched target indexing labels using a data storing model. For example, if the storing module 440 stores the first feature data, the second feature data of the POI, and the matched target indexing label using MySQL, the closure table model may be used by the processing engine 112 to store the data.
  • the modules in the processing engine 112 may be connected to or communicate with each other via a wired connection or a wireless connection.
  • the wired connection may include a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof.
  • the wireless connection may include a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof.
  • LAN Local Area Network
  • WAN Wide Area Network
  • NFC Near Field Communication
  • Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units.
  • the obtaining module 410 and the storing module 440 may be combined as a single module which may both obtain and store the feature data and matched target indexing labels.
  • the processing engine 112 may include a storage module (not shown) used to store data and/or information for determining the indexing labels.
  • the processing engine 112 may further include a recommendation module configured to recommend one or more POIs to a client terminal.
  • the recommendation module may be integrated into the matching module 430.
  • FIG. 5 is a flowchart illustrating an exemplary process for constructing a database according to some embodiments of the present disclosure.
  • the process 500 may be executed by the online to offline service system 100.
  • the process 500 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 500.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 5 and described below is not intended to be limiting.
  • the processing engine 112 may obtain first feature data of a point of interest (POI) from a first online to offline service platform.
  • POI may be a restaurant, a couture shop, a hotel, a view spot, an entertainment venue (e.g., a KTV, a cinema, etc. ) , a fitness center, a beauty parlor, an art gallery, a supermarket, a coffee shop, a shopping mall, a playing center, etc.
  • the first feature data of a specific POI may be defined by a characteristic of the specific POI that may be used to identify or distinguish the specific POI from other POIs or other types of POIs.
  • the first feature data of the POI may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, a type of the POI, a telephone number, or the like, or any combination thereof.
  • a first POI may be “Starbucks” and a second POI may be “MacDonald. ”
  • the name of the first POI “Starbucks” and the name of the second POI “MacDonald” may be used to distinguish the first POI with the second POI.
  • the type of the first POI “Starbucks” may be a coffee shop (or café)
  • the tag of the first POI “Starbucks” may be “Coffee.
  • the type of the second POI “MacDonald” may be a restaurant, and the tag of the second POI “MacDonald” may be “Western Food. ”
  • the type or tag of the first POI “Starbucks” and the type or tag of the second POI “MacDonald” may be used to distinguish the first POI with the second POI.
  • the first online to offline service platform may be configured to provide a first online to offline service.
  • Exemplary online to offline services may include a transportation service, a shopping service, a meal booking service, a map service, a navigation service, a review service, a traveling service, a social service, a meal booking, an online shopping, etc.
  • the first online to offline service platform may be an online navigation and/or map platform, etc.
  • Exemplary online navigation and/or map platform may include Google Map, Baidu Map, Amap, Apple Map, Beidou Navigation Satellite System, Tencent map, Sogou Map, Careland Mape, GPS Navigation and Map, etc.
  • a navigation and/or map platform may provide information and/or data relating to a plurality of POIs, such as coordinates, addresses, names, etc.
  • the first online to offline service platform may be an online review platform, etc.
  • Exemplary online review platforms may include MeiTuan, DIAN PING, KouBei, ENJOY, YHOUSE, MARS, Ctrip, Lvmama, etc.
  • An online review platform may provide information and/or data relating to a plurality of POIs, such as addresses, names, telephone numbers, types, tags, etc.
  • the processing engine 112 may obtain the first feature data from the first online to offline service platform via a network (e.g., the network 120) using a Web Crawler technique.
  • Exemplary web crawler techniques may include a General Purpose Web Crawler technique, a Focused Web Crawler technique, an Incremental Web Crawler technique, a Deep Web Crawler technique, etc.
  • the Web Crawler technique may be developed using Hypertext Preprocessor (PHP) (e.g., phpspider, Beanbun, PHPCrawl, etc. ) , Python (e.g., Crawley, Scrapy, Portia, PySpider, etc.
  • PHP Hypertext Preprocessor
  • Python e.g., Crawley, Scrapy, Portia, PySpider, etc.
  • Java e.g., Apache Nutch2, Crawler4j, WebMagic, WebCollector, Heritrix, Spiderman, SeimiCrawler, jsoup, etc.
  • C# e.g., DotnetSpider, NWebCrawler, SmartSpider, Abot, xNet, AngleSharp, HtmlAgilityPack, CSQuery, etc.
  • C/C++ e.g., Open-source-search-engine, Cobweb, Opton, Wombat, Spidr, Larbin, etc.
  • the processing engine 112 may obtain the first feature data from the first online to offline service platform based on a fetching strategy.
  • Exemplary fetching strategies may include a depth first traversal strategy, a breadth first traversal strategy, a partial page rank strategy, a backward link number strategy, an OPIC strategy, a larger sites first strategy, etc.
  • the processing engine 112 may obtain the first feature data of POI via an application programming interface (API) provided by the first online to offline service platform using a Python Web Crawler.
  • the API may include a plurality of predefined functions that may be configured to access a set of routines based on a piece of software or hardware.
  • the processing engine 112 may obtain a plurality of POIs by setting different API access parameters according to different platforms.
  • the data or information relating to the POIs e.g., the first feature data of the POI
  • the POIs may be saved in a specific format, such as Json, XML, etc.
  • the POIs can be saved in a database (e.g., MySQL, MongoDB, Oracle, etc. ) .
  • the processing engine 112 may obtain second feature data of the POI from a second online to offline service platform.
  • the second feature data of the POI may be defined by an evaluation of the POI.
  • the evaluation of the POI may relate to consumption person, environment, discount, transportation, location, products/services provided by the POI, etc.
  • the evaluation of the POI may relate to an amount of money consumed per person, speed for serving dishes, types of dishes, taste of dishes, whether the food material is fresh, whether the dishes is delicious, whether parking is convenient for the restaurant, whether the restaurant is clean and/or tidy, whether the waiters are polite, whether there is a discount activity, etc.
  • the evaluation of the POI may relate to an amount of money consumed per person, whether the transportation is convenient, whether the environment is hygienic, whether the service is nice, whether the tourist attraction is crowded, whether the tourist attraction is impressive and beautiful, whether parking is convenient for the tourist attraction, etc.
  • the evaluation of the POI may be generated by one or more users (e.g., consumers) via the second online to offline service platform.
  • the second feature data of the POI may include an evaluation score of the POI, a total number of evaluations or reviews of the POI, a total number of consumption times of the POI, a positive feedback rate of the POI, a negative feedback rate, one or more complaints, or the like, or any combination thereof.
  • the second online to offline service platform may be configured to provide a second online to offline service. Exemplary online to offline services may include a transportation service, a shopping service, a meal booking service, a map service, a navigation service, a review service, a traveling service, a residential service, etc., as described elsewhere in the present disclosure. In some embodiments, the second online to offline service platform may be an online review and/or transaction platform.
  • the online review and/or transaction platform may include “MeiTuan” , “DIAN PING” , “KouBei” , “ENJOY” , “YHOUSE” , “MARS” , “Ctrip” , “Lvmama” , etc.
  • the online and/or transaction review platform may provide information and/or data relating to a plurality of POIs, such as reviews, discounts, a telephone number associated with a POI, addresses, names, etc.
  • “DIAN PING” may offer a local business search, reviews, detailed business information, discounts, group buying, and other merchant services.
  • the first online to offline service platform may be same as the second online to offline service platform.
  • the first online to offline service platform and the second online platform may be both a review platform, such as “DIAN PING” .
  • the first online platform may be a navigation and/or map platform, such as Amap
  • the second online to offline service platform may be a review platform, such as “ENJOY” .
  • the processing engine 112 may obtain the second feature data from the second online to offline service platform via a network (e.g., the network 120) using a Web Crawler technique as described elsewhere in present disclosure.
  • the web crawler technique may include a General Purpose Web Crawler technique, a Focused Web Crawler technique, Incremental Web Crawler technique, a Deep Web Crawler technique, etc.
  • the Web Crawler technique may be developed using Hypertext Preprocessor (PHP) (e.g., phpspider, Beanbun, PHPCrawl, etc. ) , Python (e.g., Crawley, Scrapy, Portia, PySpider, etc.
  • PHP Hypertext Preprocessor
  • Python e.g., Crawley, Scrapy, Portia, PySpider, etc.
  • Java e.g., Apache Nutch2, Crawler4j, WebMagic, WebCollector, Heritrix, Spiderman, SeimiCrawler, jsoup, etc.
  • C# e.g., DotnetSpider, NWebCrawler, SmartSpider, Abot, xNet, AngleSharp, HtmlAgilityPack, CSQuery, etc.
  • C/C++ e.g., open-source-search-engine, Cobweb, upton, wombat, Spidr, Larbin, etc. ) , etc.
  • the processing engine 112 may obtain the second feature data of the POI via an application programming interface (API) provided by the second online to offline service platform using a Python Web Crawler.
  • API application programming interface
  • the data or information relating to the POIs may be saved to a specific format, such as Json, XML, etc.
  • the POIs may be saved in a database (e.g., MySQL, MongoDB, Oracle, etc. ) .
  • the processing engine 112 may determine one or more groups of indexing labels.
  • Each group of the one or more groups of indexing labels may be ranked into a plurality of levels.
  • Each of the plurality of levels in one group may include one or more indexing labels.
  • An indexing label may be configured to denote a characteristic of a POI, such as the type of the POI, the tag of the POI, etc.
  • an indexing label may include “Food” , “Sport” , “Shopping” , “Movie” , “Hotel” , “Tourism” , “Beauty” , etc.
  • An indexing label with a higher level in the each group may have a higher priority for searching than an indexing label with a lower level.
  • a first indexing label in one group may be “Food”
  • a second indexing label in the one group may “Fast Food” , or “Chinese Food” , or “Coffee” , or “Barbecue” , or the like.
  • a first indexing label another group may be “Tourism”
  • “MacDonald” and “Kentucky Fried Chicken (KFC) ” may have the same indexing label “Fast Food. ”
  • “Starbucks” may have a different indexing label “Coffee” with that of “MacDonald. ”
  • a group of indexing labels having different levels may be set by a user via a client terminal (e.g., the client terminal 140) .
  • the processing engine 112 (or the determination module 420) may obtain one or more groups of indexing labels from the first online to offline service platform, the second online to offline service platform, or any other online service platform.
  • the processing engine 112 (or the determination module 420) may determine a group of indexing labels based on feature data of the POIs (e.g., the first feature data) .
  • the first feature data of a POI may include one or more types or tags of the POI.
  • the processing engine 112 may designate the types or tags of the POI as one or more levels of indexing labels.
  • the types or tags of a POI “Chongqing Hot Pot” obtained from the first online to offline service platform may be “Food” and “Hot Pot. ”
  • the processing engine 112 may designate “Food” as an indexing label with highest level (e.g., the first level as shown in FIG. 8) , and designate “Hot Pot” as a secondary indexing label (e.g., the second level as shown in FIG. 8) .
  • the processing engine 112 may match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI.
  • the processing engine 112 may determine a target group, to which the POI belongs, among the plurality of groups of indexing labels, by comparing the POI with indexing labels on the same level among the plurality of groups of indexing labels. For example, the indexing labels on the same level among the plurality of groups of indexing labels may be on the highest level (e.g., the first level as shown in FIG. 8) . Then the processing engine 112 may determine the target group based on the comparison.
  • the processing engine 112 may determine similarities between the first feature data of the POI and the indexing labels on the same level among the plurality of groups of indexing labels.
  • the processing engine 112 may determine the target group whose indexing label has a maximum similarity with the first feature data of the POI.
  • the similarity between the first feature data of the POI and an indexing label may be defined by a distance between the first feature data of the POI and the indexing label.
  • Exemplary distances for representing a similarity may include a Edit distance, a Euclidean distance, a Manhattan distance, a SinHash distance, a Jaccard distance, etc.
  • the processing engine 112 may further compare the POI with one or more indexing labels on different levels in the target group. For example, the processing engine 112 may compare the POI with each of the indexing labels in the target group from a highest level to a lowest level. If a similarity of the POI and a target indexing label in the current level satisfies a condition, the processing engine 112 may determine that the POI and the target indexing label on the current level is matched. Then the processing engine 112 may compare the POI with other indexing labels on a next level of the target indexing label until the POI is matched with a target indexing label in the lowest level.
  • the processing engine 112 may determine that the similarity between the POI and the target indexing label on the current level satisfies the condition if the similarity between the POI and the target indexing label in the current level exceeds a threshold.
  • the condition may be different with respect to different levels. For example, the higher the level is, the smaller the threshold may be.
  • the processing engine 112 may directly determine similarities between the POI and each of the indexing labels with the lowest level in the target group. The processing engine 112 may determine the target indexing label who has a maximum similarity with the POI.
  • the processing engine 112 may determine the target group of the POI is “Food” based on the name of the POI, the tag of the POI, etc. Then the processing engine 112 may match the POI with a target indexing label “Western Food” from a second level of indexing labels in the target group “Food” as shown in FIG. 8.
  • the target indexing label “Western Food” may have not a next level of indexing labels. In other words, the target indexing label “Western Food” may be the lowest indexing label.
  • the processing engine 112 may match the POI with the “Western Food Database” corresponding to the lowest indexing label “Western Food. ”
  • the processing engine 112 may determine the target group of the POI is “Food” based on the name of the POI, the tag of the POI, etc. Then the processing engine 112 may match the POI with a target indexing label “Chinese Food” from a second level of indexing labels in the target group “Food” as shown in FIG. 8.
  • the target indexing label “Chinese Food” may have a next level (i.e., the third level) of indexing labels.
  • the processing engine 112 may match the POI with a target indexing label “Hot Pot” from the third level of indexing labels. Then the processing engine 112 may match the POI with the “Hot Pot Database” corresponding to the lowest indexing label “Hot Pot. ” More descriptions regarding the matching of the POI with a target indexing label from the one or more groups of indexing labels may be found elsewhere in the present disclosure. See, e.g., FIG. 7 and the relevant descriptions thereof.
  • the processing engine 112 may store the first feature data, the second feature data of the POI and the matched target indexing labels to form a database.
  • the processing engine 112 e.g., the storing module 440
  • Exemplary data storing models may include an adjacency table model, an enumeration path model, a closure table model, a nested set model, or the like.
  • the processing engine 112 may match a plurality of POIs with corresponding target indexing labels according to operation 510 to 540 to form multiple databases corresponding to the target indexing labels. For example, if the target indexing label on the lowest level is “Coffee” , the processing engine 112 may form a coffee database including a plurality of cafes and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of cafes. As another example, as shown in FIG.
  • the processing engine 112 may form a “Foot Massage Database” that may include a plurality of foot massage shops and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of foot massage shops.
  • a user interface may receive an input of a query about a POI from a user through, for example, a user interface screen.
  • the query about a target POI may be “a cafe having a closest distance. ”
  • the client terminal may send a signal including the query about a POI to the server110 via the user interface.
  • the processing engine 112 may retrieve and/or determine one or more candidate POIs from a database constructed by the server 110 as described elsewhere in present disclosure in response to receive the signal from the client terminal via the user interface (e.g., an online service platform) .
  • the server110 may further recommend one or more candidate POIs to the client terminal 140 via the user interface.
  • processing engine 112 m ay perform operation 530 before operations 510 and/or 520.
  • FIG. 6 is a flowchart illustrating an exemplary process for recommending a POI to a client terminal according to some embodiments of the present disclosure.
  • the process 600 may be executed by the online to offline service online to offline service system 100.
  • the process 600 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 600.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 6 and described below is not intended to be limiting.
  • the processing engine 112 may obtain a query about a POI specified by a user via a client terminal.
  • the user may input the query about a POI via a user interface (e.g., an online service platform) implemented on the client terminal (e.g., the client terminal 140) .
  • the query specified by the user via a client terminal may be in a form of text, voice, image, etc.
  • the query about a POI may be a series of numbers, a word, a phrase, a sentence, or the like, or any combination thereof.
  • the query may be explicit (also referred to as explicit demand) .
  • an explicit demand may refer to a query that specifies a target POI.
  • the query about “Burger King” may be an explicit demand that specifies the target POI is “Burger King. ”
  • the query about a POI may be ambiguous (also referred to as ambiguous demand) .
  • an ambiguous demand may refer to a query that does not specify a target POI.
  • the query for inquiring “delicious restaurant” may be an ambiguous demand that does not specify a POI.
  • the processing engine 112 may retrieve data associated with one or more candidate POIs matching with the query from a database.
  • the processing engine 112 may process the query about a POI to extract one or more keywords from the query.
  • the processing engine 112 may convert the query into a form of text if it is in a form of voice.
  • the processing engine 112 may perform a text segmentation operation on the query to extract the one or more keywords.
  • the text segmentation operation may be performed by the processing engine 112 using a text segmentation algorithm.
  • Exemplary text segmentation algorithms may include a TF-IDF (term frequency–inverse document frequency) algorithm, a KEA algorithm, a RAKE algorithm, a TextRank algorithm, etc.
  • the keywords may be used to denote the semantics of the query about a POI. For example, if the query about a POI may be “a Hunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers. ”
  • the processing engine 112 may determine that the keywords of the query “aHunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers” may be “Hunan restaurant” , “an amount of money consumed per person 100 RMB” , and “5 kilometers. ”
  • the processing engine 112 may search the database to match one or more candidate POIs with the keywords associated with the obtained query.
  • the database may include a plurality of groups of indexing labels. Each of the plurality of groups of indexing labels may include a plurality of levels of indexing labels. The lowest level in each of the plurality of groups may correspond one or more POIs.
  • the database may store data and/or information of the one or more POIs (e.g., the first feature data and the second feature data as described in FIG. 5) .
  • the processing engine 112 may determine a target indexing label based on a portion of the keywords extracted from the query for inquiring a POI.
  • the processing engine 112 may obtain data and/or information of one or more candidate POIs corresponding to the target indexing label.
  • the data and/or information associated with one or more candidate POIs may include first feature data (e.g., a name of a POI, coordinates of a POI, an address of a POI, a telephone number of a POI, etc. ) and second feature data (e.g., an evaluation score of the POI, a number of consumption times of the POI, or a number of reviews of the POI, etc. ) , or the like, or any combination thereof.
  • first feature data e.g., a name of a POI, coordinates of a POI, an address of a POI, a telephone number of a POI, etc.
  • second feature data e.g., an evaluation score of the POI, a number of consumption times of the POI, or a number of reviews of the POI, etc.
  • the processing engine 112 may determine one or more candidate POIs based on a portion of keywords associated with the query about a POI and the data and/or information of the one or more POIs corresponding to the target indexing label.
  • the query about a POI may be “a Hunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers. ”
  • the keywords of the query “a Hunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers” may be “Hunan restaurant” , “an amount of money consumed per person 100 RMB” , and “5 kilometers. ”
  • the processing engine 112 may determine that the target indexing label may be “Hunan Restaurant.
  • the engine 112 may determine a plurality of POIs associated with the target indexing label “Hunan Restaurant. ” The processing engine 112 may further determine one or more candidate POIs from the plurality of POIs based on keywords “an amount of money consumed per person 100 RMB” , and “5 kilometers. ”
  • the processing engine 112 may determine a target group from the plurality of groups of indexing labels by comparing the keywords with indexing labels having the same level in each of the plurality of groups of indexing labels. For example, the indexing labels having the same level in each of the plurality of groups of indexing labels may have the highest level. Then the processing engine 112 may determine the target group based on the comparison. For example, the processing engine 112 may determine similarities between the keywords and the indexing labels having the same level in each of the plurality of groups of indexing labels. The processing engine 112 may determine the target group whose indexing label has a maximum similarity with the keywords.
  • the processing engine 112 may further compare the keywords with one or more indexing labels in the target group. For example, the processing engine 112 may compare the keywords with each of the indexing labels in the target group from a highest level to a lowest level. If a similarity of the POI and an indexing label on a current level satisfies a condition, the processing engine 112 may determine that the keywords (i.e., the query) and the indexing label on the current level is matched. In some embodiments, the processing engine 112 may determine that the similarity between the keywords and the indexing label satisfies the condition if the similarity between the keywords and the indexing label exceeds a threshold. Then the processing engine 112 may compare the keywords with other indexing labels in the next level of the current level until the POI is matched with an indexing label in the lowest level.
  • the processing engine 112 may compare the keywords with other indexing labels in the next level of the current level until the POI is matched with an indexing label in the lowest level.
  • the processing engine 112 may directly determine similarities between the keywords and each of the indexing labels in the target group.
  • the processing engine 112 may determine the target indexing label who has a maximum similarity with the keywords. For example, if the keyword is “Western Restaurant” , the processing engine 112 may determine the target group is “Food” based on the keyword “Western Restaurant. ” Then the processing engine 112 may compare the query with indexing labels, for example, “Western Food” , “Coffee” , “Chinese Food” , “Sichuan Cuisine” , “Shanghai Cuisine” , “Hot Pot” , etc., in the target group “Food” as shown in FIG. 8. The processing engine 112 may match the POI “Western Restaurant” with the “Western Food. ”
  • the processing engine 112 may recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs. In some embodiments, the processing engine 112 (e.g., the matching module 430) may recommend all the one or more candidate POIs to the client terminal. In some embodiments, the processing engine 112 (e.g., the matching module 430) may recommend a portion of the one or more candidate POIs according to a default setting of the online to offline service system 100.
  • the processing engine 112 may rank the one or more candidate POIs according to, for example, the second feature data of each of the one or more candidate POIs, such as an amount of money consumed per person, evaluation score, etc., the first feature data such as location, etc., or the like, or a combination thereof.
  • the processing engine 112 may recommend the top few (e.g., top three, top four, top five, etc. ) or bottom few (e.g., bottom three, bottom two, bottom one, etc. ) in the rank to the client terminal.
  • the processing engine 112 may recommend the at least one of the one or more candidate POIs to the user based on the historical data associated with the user.
  • the processing engine 112 e.g., the matching module 430
  • the historical data associated with the user may include a plurality of historical search records, historical orders for an online service, etc., for a time period.
  • the time period may be a past week, a past month, a past three months, a past six months, or the like.
  • the historical data associated with the user may be used to determine a preference of the user for, for example, taste, location, hobby, etc.
  • the processing engine 112 may recommend the user at least one of one or more candidate POIs in different forms.
  • the candidate POIs may be presented in such as text, numbers, symbols, images, a diagram, or the like, or any combination of there. For example, an overview of the candidate POIs may be described using text and numbers. Symbols may represent customer satisfaction, such as heart-shaped symbols or smiley symbols. Images may visualize candidate POIs and other POIs around the candidate POIs. Diagrams may be used to provide a comparison of the evaluation scores of the candidate POIs, the total number of evaluations of the candidate POI, the total number of consumption times of the candidate POI, or the like, or any combination thereof of the one or more candidate POIs.
  • the processing engine 112 may transmit a signal to the client terminal.
  • the signal may include the one or more candidate POIs and the data and/or information of the candidate POIs.
  • the signal may be further configured to cause the client terminal to display the candidate POIs to the user.
  • the signal may be configured to cause the client terminal to present the candidate POIs on a map provided by an online service platform (e.g., a map platform) .
  • process 600 may further include store the query specified by the user.
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a target indexing label according to some embodiments of the present disclosure.
  • the process 700 may be executed by the online to offline service online to offline service system 100.
  • the process 700 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
  • the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 700.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 700 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 7 and described below is not intended to be limiting. Operation 540 and/or 620 may be performed according to process 700 as illustrated in FIG. 7.
  • the processing engine 112 may obtain a first indexing label from a first group of indexing labels.
  • the first indexing label may correspond to the highest level of the first group. As shown FIG. 8, the highest level may be “Play” , “Food” , “Sport” , “Shopping” , “Movie” , “Hotel” , “Tourism” , “Beauty” , etc.
  • the processing engine 112 may determine a similarity between a POI with the first indexing label.
  • the similarity between a POI with the first indexing label may be determined based on the first feature data as described in connection with FIG. 5.
  • the similarity between the POI and the first indexing label may be defined by a distance between the first feature data of the POI and the first indexing label as described elsewhere in the present disclosure (e.g., FIG. 5 and the descriptions thereof) . The higher the distance between the first feature data of the POI and the first indexing label is, the lower the similarity between the POI and the first indexing label may be.
  • the similarity between a POI and the first indexing label may be determined based on a query about the POI as described in connection with FIG. 6.
  • the processing engine 112 may receive the query about the POI from the client terminal 140.
  • the processing engine 112 may extract one or more keywords from the query and determine the similarity between the one or more keywords and the first indexing label.
  • the similarity between the query and the first indexing label may be defined by a distance between the at least one keywords and the first indexing label as described elsewhere in the present disclosure (e.g., FIG. 5 and the descriptions thereof) .
  • the similarity may be denoted by a coefficient.
  • the coefficient may be a percentage, such as 90%, 80%, 70%, 50%, 40%, etc.
  • the similarity may be described by adverb of degree based on the distance between the POI and the first indexing label.
  • the adverb may include fairly, pretty, rather, quite, very, much, too, greatly, almost, nearly, half, highly, outly, deeply, partly, perfectly, really, and the like.
  • the processing engine 112 may determine whether the similarity meets a first condition.
  • the first condition may be configured to determine whether the POI belongs or matches to the first indexing label. In some embodiments, if the similarity between the POI with the first indexing label meets the first condition, the processing engine 112 may proceed to operation 710. If the similarity between the POI with the first indexing label does not meet the first condition, the processing engine 112 may proceed to operation 708.
  • the first condition may be a first threshold, a first range, etc. If the similarity between the POI with the first indexing label is equal to or lower than the first threshold, the processing engine 112 may determine that the similarity between the POI with the first indexing label does not satisfy the first condition. In other words, the first indexing label may not match the POI. If the similarity between the POI with the first indexing label exceeds the first threshold, the processing engine 112 may determine that the similarity between the POI with the first indexing label satisfies the first condition. In other words, the first indexing label may match the POI.
  • the first condition may relate to a maximum of similarities between the POI with the first indexing label corresponding to each group of the plurality of groups. If the similarity between the POI with the first indexing label is maximum, the processing engine 112 may determine that the similarity between the POI with the first indexing label satisfies the first condition. If the similarity between the POI with the first indexing label is not maximum, the processing engine 112 may determine that the similarity between the POI with the first indexing label does not satisfy the first condition.
  • the first condition may be pre-determined by the processing engine 112 or a user. For example, the processing engine 112 may set the first condition according to the different levels of indexing labels.
  • the first condition may be adjusted. For example, if the processing engine 112 determines that there is no first indexing label in all the plurality of groups matching with the POI, the processing engine 112 may decrease the first threshold. If the processing engine 112 determines that there are more than two first indexing labels in all the plurality of groups matching with the POI, the processing engine 112 may increase the first threshold.
  • the processing engine 112 may update the first group of indexing labels using a second group of indexing labels or other groups.
  • the POI may not match the first indexing label in the first group (e.g., “Play” as shown in FIG. 8) .
  • the processing engine 112 e.g., the matching module 430
  • the processing engine 112 may determine a target group from the plurality of groups until the first condition is met.
  • the first group of indexing labels may be updated by designating the second group of indexing labels as the first group of indexing labels.
  • the processing engine 112 e.g., the matching module 430
  • the processing engine 112 may obtain the second group of indexing labels having a highest level of indexing label “Food” .
  • the second group of indexing labels may be designated as the first group of indexing labels and the highest level of indexing label “Food” may be designated as the first indexing label.
  • the processing engine 112 e.g., the matching module 430
  • the processing engine 112 may update the first indexing label using a second indexing label from the first group of indexing labels.
  • the first group of indexing labels may also be referred to as a target group if the first indexing label satisfies the condition.
  • the second indexing label may correspond to a lower level with respect to the first indexing label. For example, if the first indexing label corresponds to a highest level (i.e., the first level as shown in FIG. 8) , the second indexing label may correspond to a second level as shown in FIG. 8.
  • the second indexing label may be one of “Western Food” , “Coffee” , “Chinese Food” , “Barbecue” , etc.
  • the second indexing label may be also referred to as a sub-indexing label of the first indexing label.
  • the first indexing label may be updated by designating the second indexing label as the first indexing label.
  • the processing engine 112 e.g., the matching module 430
  • the processing engine 112 may obtain the second group of indexing labels having a lower level of indexing label “Food” , such as “Chinese Food” , “Western Food” , etc.
  • the second indexing label may be designated as the first indexing label.
  • the processing engine 112 may perform operations 710 to 712 to determine whether the POI “KFC” matches with the lower level of indexing label until a lowest level of indexing label matching with the POI “KFC” .
  • the processing engine 112 may determine whether the similarity between the POI with the second indexing label meets a second condition.
  • the second condition may be configured to determine whether the POI belongs to or matches the second indexing label.
  • the processing engine 112 may proceed to process 714. If the similarity between the POI with the second level indexing label does not meet the second condition, the processing engine 112 may proceed to perform 710.
  • the second condition may be a second threshold, a second range, etc. If the similarity between the POI with the second indexing label is equal to or lower than the second threshold, the processing engine 112 may determine that the similarity between the POI with the second indexing label does not satisfy the second condition. In other words, the second indexing label may not match the POI. If the similarity between the POI with the second indexing label exceeds the second threshold, the processing engine 112 may determine that the similarity between the POI with the second indexing label satisfies the second condition. In other words, the second indexing label may match the POI.
  • the second threshold may be higher than the first threshold. For example, if the similarity is expressed as percentage, 50%or more similarity may meet the first condition, and 80%or more similarity may meet the second condition.
  • the second condition may be adjusted by the online to offline service system 100. For example, if the processing engine 112 determines that there is no second indexing label in all the plurality of groups matching with the POI, the processing engine 112 may decrease the second threshold. If the processing engine 112 determines that there are more than two second indexing labels in the first group matching with the POI, the processing engine 112 may increase the second threshold.
  • the processing engine 112 may match the second indexing label with the POI.
  • the POI may belong to the second indexing label. For example, if the tag of the POI is “Cafe” , the POI may belong to or match the second indexing label “Coffee. ”
  • Process 700 may further include obtain one or more candidate POIs matched with the query about the POI. In some embodiments, process 700 may be also used to query a POI.
  • FIG. 8 is schematic diagrams illustrating an exemplary structure of a database system according to some embodiments of the present disclosure.
  • the database system may have a pyramidal hierarchical structure.
  • the pyramidal hierarchical structure may include a plurality of groups of indexing labels, for example, “Play” , “Food” , “Sport” , “Shopping” , “Movie” , “Hotel” , “Tourism” , “Beauty” , etc.
  • Each group of the plurality of groups of indexing labels may be classified into one or more levels, such as the first level, the second level, the third level, ... , etc.
  • the first level may also be the highest level.
  • Each group may have the lowest level of indexing labels.
  • the lowest level in the group “Food” may include “Coffee” , “Barbecue” , “Western Food” , “Shanghai Cuisine” , “Sichuan Cuisine” , “Cantonese Cuisine” , etc.
  • Each of the lowest level of indexing labels may correspond to a database which may store data and/or information (e.g., the first feature, the second feature data, etc. ) of one or more POIs matched with each of the lowest level of indexing labels
  • FIG. 9 is schematic diagrams illustrating an exemplary database according to some embodiments of the present disclosure.
  • a database relating to “Foot Massage” may include a plurality of POIs, such as Yuizumi Yoshiko (Jinyuan) , VICI LAN SPA&LAN MASSAGE SALON, Chrysanthemum SPA, etc.
  • the database relating to “Foot Massage” may include data and/or information relating to each of the plurality of POIs, such as name, address, label, score, the total number of consumptions, the total number of reviews for each of POIs, etc.
  • aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable medium having computer readable program code embodied thereon.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2103, Perl, COBOL 2102, PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy, or other programming languages.
  • the program code may execute entirely on the user’s computer, partly on the user’s computer, as a stand-alone software package, partly on the user’s computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
  • LAN local area network
  • WAN wide area network
  • SaaS Software as a Service
  • the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ”
  • “about, ” “approximate, ” or “substantially” may indicate ⁇ 20%variation of the value it describes, unless otherwise stated.
  • the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment.
  • the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for constructing a database is provided. The method may include obtaining first feature data of a point of interest (POI) from a first online service platform and obtaining second feature data of the POI from a second online service platform. The method may also include determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which includes one or more indexing labels. The method may also include matching the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI. The method may further include storing the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.

Description

[Title established by the ISA under Rule 37.2] SYSTEM AND METHOD FOR CONSTRUCTING DATABASE
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority of Chinese Application No. 201811399017.3, filed on November 22, 2018, the entire contents of which are hereby incorporated by reference.
TECHNICAL FIELD
The present disclosure generally relates to online to offline service, and more particularly, to systems and methods for constructing a database.
BACKGROUND
With the development of Internet, more and more information may be obtained and/or retrieved from online service platforms via a network. For example, a user may query about points of interest (POIs) and related information stored in the databases of a transportation service platform. However, frequently, this query about POIs is ambiguous and unclear, resulting in retrieved POIs inaccurate. For example, the query about POIs may be the phrase “delicious restaurant, ” which may be too ambiguous to retrieve accurate POIs. In addition, the data and/or information of the POIs stored in the current databases may not be comprehensive and complete so that they cannot provide accurate information of the POIs to the user. Therefore, it is desirable to provide systems and methods for constructing an efficient database to retrieve POIs via query.
SUMMARY
According to one aspect of the present disclosure, a system for constructing a database is provided. The system may include at least one storage medium including a set of instructions, and at least one processor in communication with the at least one storage medium. When executing the set of instructions, the at least one processor may be directed to cause the system to obtain first feature data of a  point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform. The at least one processor may also be directed to cause the system to determine one or more groups of indexing labels. Each group of the one or more groups of indexing labels may be ranked into a plurality of levels, each of which includes one or more indexing labels. The at least one processor may also be directed to cause the system to match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI. The at least one processor may further be directed to cause the system to store the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
In some embodiments, the first feature data of the POI may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, a type of the POI, etc.
In some embodiments, the second feature data of the POI may include an evaluation score of the POI, a number of an evaluation of the POI, a number of consumption times of the POI, a number of reviews of the POI, etc.
In some embodiments, the first online platform may be configured to provide a map service.
In some embodiments, the second online platform may be configured to provide a review service.
In some embodiments, the at least one processor may be directed to cause the system to obtain the second feature data of the POI from the second online platform using a Python technique.
In some embodiments, to match the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI, the at least one processor may be directed to cause the system to compare the POI with at least a portion of indexing labels of one of the one or more groups of indexing labels from a highest level to a lowest level. The at least one processor may also  be directed to cause the system to determine the target indexing label based on the comparison.
In some embodiments, to compare the first feature data of the POI with indexing labels of one of the one or more groups of indexing labels, the at least one processor may be directed to cause the system to determine a similarity between the POI with the each indexing label of the one of the one or more groups of indexing labels. The at least one processor may also be directed to cause the system to determine the target indexing label having the similarity satisfying a condition.
In some embodiments, the system may further comprise a data exchange port connected to one or more online platforms for providing online-to-offline services. The at least one processor may be further directed to cause the system to obtain a query for inquiring about the POI specified by a user via a client terminal.
The at least one processor may be further directed to cause the system to retrieve data associated with one or more candidate POIs matching with the query from the database. The at least one processor may be further directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
In some embodiments, to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs, the at least one processor may be further directed to cause the system to obtain historical data associated with the user from the client terminal. The at least one processor may be further directed to cause the system to recommend the at least one of the one or more candidate POIs to the user based on both the retrieved data associated with the one or more candidate POIs and the historical data associated with the user.
According to another aspect of the present disclosure, a system for POIs recommendation is provided. The system may comprise a data exchange port connected to one or more online to offline service platforms for providing online-to-offline services, at least one storage medium including a set of instructions and at  least one processor in communication with the at least one storage medium. When executing the set of instructions, the at least one processor may be directed to cause the system to obtain a query about a POI specified by a user via a client terminal. The at least one processor may also be directed to cause the system to retrieve data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs. The database may be constructed by determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level. The database may also be constructed by obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI. The database may also be constructed by obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI. The database may also be constructed by matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI. The database may further be constructed by storing the first feature data, the second feature data of the POI, and the matched target indexing label. The at least one processor may further be directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
According to another aspect of the present disclosure, a method for constructing a database is provided. The method may include obtaining first feature data of a point of interest (POI) from a first online service platform and obtaining second feature data of the POI from a second online service platform. The method may also include determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which includes one or more indexing labels. The method may also include  matching the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI. The method may further include storing the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
According to another aspect of the present disclosure, a method for POIs recommendation is provided. The method may include obtaining a query about a POI specified by a user via a client terminal and retrieving data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs. The method may include recommending at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs. The database may be constructed by determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level. The database may also be constructed by obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI. The database may also be constructed by obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI. The database may also be constructed by matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI. The database may further be constructed by storing the first feature data, the second feature data of the POI, and the matched target indexing label. The at least one processor may further be directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
According to another aspect of the present disclosure, a non-transitory computer-readable storage medium embodying a computer program product. The computer program product including instructions may be configured to cause a  computing device to obtain first feature data of a point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform. The computer program product including instructions may be configured to cause the computing device to determine one or more groups of indexing labels. Each group of the one or more groups of indexing labels may be ranked into a plurality of levels, each of which includes one or more indexing labels. The computer program product including instructions may be configured to cause the computing device to cause the system to match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI. The computer program product including instructions may be configured to cause the computing device to store the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
According to another aspect of the present disclosure, a non-transitory computer-readable storage medium embodying a computer program product. The computer program product including instructions may be configured to cause a computing device to obtain a query about a POI specified by a user via a client terminal and retrieve data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs. The computer program product including instructions may be configured to cause the computing device to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs. The database may be constructed by determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level. The database may also be constructed by obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI. The database may also be  constructed by obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI. The database may also be constructed by matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI. The database may further be constructed by storing the first feature data, the second feature data of the POI, and the matched target indexing label. The at least one processor may further be directed to cause the system to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
According to another aspect of the present disclosure, a system for constructing a database is provided. The system may includes an obtaining module configured to obtain first feature data of a point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform; a determination module configured to determine one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which include one or more indexing labels; a match module configured to match the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI; and a storing module configured to store the first feature data, the second feature data of the POI, and the matched target indexing label.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
BRIF DESCRIPTION OF THE DRAWINGS
The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
FIG. 1 is a schematic diagrams illustrating an exemplary database system according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary computing device on which a processing engine may be implemented according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device on which a terminal may be implemented according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary terminal according to some embodiments of the present disclosure;
FIG. 5 is a flowchart illustrating an exemplary process for constructing a database according to some embodiments of the present disclosure;
FIG. 6 is a flowchart illustrating an exemplary process for recommending a POI to a client terminal according to some embodiments of the present disclosure;
FIG. 7 is a flowchart illustrating an exemplary process for determining a target indexing label according to some embodiments of the present disclosure;
FIG. 8 is schematic diagrams illustrating an exemplary structure of a database system according to some embodiments of the present disclosure; and
FIG. 9 is schematic diagrams illustrating an exemplary database according to some embodiments of the present disclosure.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant disclosure. However, it should be apparent to those skilled in the art that the present disclosure may be practiced without such details. In other instances, well-known methods, procedures, systems, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present disclosure. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown, but to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise, ” “comprises, ” and/or “comprising, ” “include, ” “includes, ” and/or “including, ” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It will be understood that the term “system, ” “engine, ” “unit, ” “module, ” and/or “block” used herein are one method to distinguish different components, elements, parts, section or assembly of different level in ascending order. However, the terms may be displaced by other expression if they achieve the same purpose.
Generally, the word “module, ” “unit, ” or “block, ” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions. A module, a unit, or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable  medium or other storage device. In some embodiments, a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules/units/blocks configured for execution on computing devices (e.g., processor 220 as illustrated in FIG. 2) may be provided on a computer-readable medium, such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) . Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device. Software instructions may be embedded in a firmware, such as an EPROM. It will be further appreciated that hardware modules/units/blocks may be included in connected logic components, such as gates and flip-flops, and/or can be includedof programmable units, such as programmable gate arrays or processors. The modules/units/blocks or computing device functionality described herein may be implemented as software modules/units/blocks, but may be represented in hardware or firmware. In general, the modules/units/blocks described herein refer to logical modules/units/blocks that may be combined with other modules/units/blocks or divided into sub-modules/sub-units/sub-blocks despite their physical organization or storage. The description may be applicable to a system, an engine, or a portion thereof.
It will be understood that when a unit, engine, module or block is referred to as being “on, ” “connected to, ” or “coupled to, ” another unit, engine, module, or block, it may be directly on, connected or coupled to, or communicate with the other unit, engine, module, or block, or an intervening unit, engine, module, or block may be present, unless the context clearly indicates otherwise. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
These and other features, and characteristics of the present disclosure, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawings, all of which form a part of this disclosure. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
FIG. 1 is a schematic diagram of an exemplary online to offline service system 100 according to some embodiments of the present disclosure. The online to offline service system may be an online to offline service platform for transportation services (e.g., taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, etc. ) , online navigation services, online review services, meal booking services, online shopping services, etc. The online to offline service system 100 may include a server 110, a network 120, a storage device130, and a client terminal 140.
The server 110 may include a processing engine 112. The processing engine 112 may be configured to process information and/or data relating to one or more points of interest (POIs) . For example, the processing engine 112 may obtain data and/or information relating to the POIs from one or more online or offline service platforms (e.g., a review service platform, a map service platform, etc. ) to construct one or more databases associated with the POIs. The information and/or data relating to one or more points of interest (POIs) may include feature data of each of  the POIs. Exemplary feature data of a POI may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, a type of the POI, an evaluation score of the POI, a number of consumption times of the POI, a number of reviews of the POI, or the like, or any combination thereof. Further, the processing engine 112 may construct a database of the POIs based on the feature data relating to the POIs. The processing engine 112 may determine a plurality of groups of indexing labels. Each group of the plurality of indexing labels may be ranked into a plurality of levels. The processing engine 112 may match a POI with a target indexing label from the one or more groups of indexing labels based on the feature data of the POI and store the feature data of the POI, and the matched target indexing label for forming a database in, for example, the storage device 130, or any other storage. As another example, the processing engine 112 may receive a query about one or more POIs generated by a user from the client terminal 140. The processing engine 112 may retrieve and/or determine one or more candidate POIs from the one or more databases constructed by the processing engine 112. The processing engine 112 may further transmit a signal including the one or more candidate POIs to the client terminal 140. The signal may be also configured to cause the client terminal 140 to display the one or more candidate POIs to the user.
In some embodiments, the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing engine 112 may include one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
In some embodiments, the server 110 may be a single server, or a server group. The server group may be centralized, or distributed (e.g., server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in the storage device 130 via the network 120. As another example, the server 110 may connect to the storage device 130 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
The network 120 may facilitate exchange of information and/or data. In some embodiments, one or more components of the online to offline service system 100 (e.g., the server 110, the client terminal 140, and the storage device130) may transmit information and/or data to other component (s) in the online to offline service system 100 via the network 120. For example, the server 110 may obtain data or information relating to one or more POIs from one or more online to offline service platforms implemented on the client terminal 140 via the network 120. As another example, the client terminal 140 may send a query about POIs and related information or data via an online to offline service platform (e.g., a transportation service platform) . In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof. In some  embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2… through which one or more components of the online to offline service online to offline service system 100 may be connected to the network 120 to exchange data and/or information between them.
The storage device 130 may store data and/or instructions. For example, the storage device 130 may store data or information relating to one or more POIs provided by one or more online service platforms (e.g., a map service platform, a review service platform, etc. ) . Further, the storage device 130 may store feature data relating to the one or more POIs determined by the processing engine 112. As another example, the storage device 130 may store a plurality of groups of indexing labels and corresponding POIs. As still an example, the storage device 130 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage device 130 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Exemplary volatile read-and-write memory may include a random-access memory (RAM) . Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage device 130 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid  cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the storage device 130 may include at least one network port to communicate with other devices in the online to offline service system 100. For example, the storage device 130 may be connected to the network 120 to communicate with one or more components of the online to offline service system 100 (e.g., the server 110, the client terminal 140) via the at least one network port. One or more components in the online to offline service system 100 may access the data or instructions stored in the storage device 130 via the network 120. In some embodiments, the storage device 130 may be directly connected to or communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the client terminal 140) . In some embodiments, the storage device 130 may be part of the server 110.
The client terminal 140 may be any type of devices that used by a user to query needed information. For example, the client terminal 140 may send a query to the server 110. The user of the client terminal 140 may be any organization or individual that sends a query, for example, an address of shopping mall, a delicious western restaurant, or the like, or any combination thereof.
In some embodiments, the client terminal 140 may include any type of devices, for example, a mobile device, an electronic device, an automobile, or the like, or any combination thereof. For example, the client terminal 140 may include a mobile device 140-1, a laptop computer 140-2, a desktop computer 140-3, a built-in device in a motor vehicle 140-4, or the like, or any combination thereof. The built-in device 140-3 may include an onboard computer, an onboard television, an onboard positioning system, etc. The mobile device 140-1 may include a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any  combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may include a Google Glass TM, a RiftCon TM, a Fragments TM, a Gear VRTM, etc. In some embodiments, the client terminal 140 may be a device with positioning technology for locating the position of the client terminal 140 and/or the user thereof. In some embodiments, the client terminal 140 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
In some embodiments, the client terminal 140 may send and/or receive data and/or information relating to a POI via a user interface to and/or from the server 110. The user interface may be in form of an application for an online to offline service implemented on the client terminal 140. The user interface may be configured to facilitate communication between the client terminal 140 and a user associated with client terminal 140. In some embodiments, the user interface may receive an input of a request (or demand, or query) for inquiring a POI from the user through, for example, a user interface screen. The client terminal 140 may send the request (or demand, or query) for inquiring a POI to the server 110 via the user interface. The processing device 120 may retrieve and/or determine one or more candidate POIs from a database constructed by the server 110 as described elsewhere in present disclosure. In some embodiments, the processing device 120 may transmit a signal including the one or more candidate POIs to the client terminal 140 via the user interface. In some embodiments, the server 110 may further  recommend one or more targets POIs based on the one or more candidate POIs to the client terminal 140 via the user interface.
One of ordinary skill in the art would understand that when an element (or component) of the online to offline service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when the client terminal 140 transmits out a request to the server 110, a processor of the client terminal 140 may generate an electrical signal encoding the request. The processor of the client terminal 140 may then transmit the electrical signal to an output port. If the client terminal 140 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which further may transmit the electrical signal to an input port of the server 110. If the client terminal 140 communicates with the server 110 via a wireless network, the output port of the client terminal 140 may be one or more antennas, which convert the electrical signal to electromagnetic signal. Within an electronic device, such as the client terminal 140 and/or the server 110, when a processor thereof processes an instruction, transmits out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium, it may transmit out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the client terminal 140 may be implemented according to some embodiments of the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
The computing device 200 may be used to implement any component of online to offline service system 100 that perform one or more functions disclosed in the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
The computing device 200, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The COM port 250 may refer to any network port, information exchange port, or any information transmitting port to facilitate data communications. The computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions. For example, the processor may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. The processing circuits may also generate electronic signals including the conclusion or the result (e.g., the feature data of a POI) and a triggering code. In some embodiments, the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the client terminal 140) in the online to offline service system 100. For example, the trigger code may include an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) . In some embodiments, the trigger code may be configured to rend the operation system (or the application) of the  electronic device to generate a presentation of the conclusion or the result (e.g., the feature data of a POI) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
The exemplary computing device may include the internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device. The exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other types of non-transitory storage medium to be executed by the processor 220. The methods and/or processes of the present disclosure may be implemented as the program instructions. The exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other types of non-transitory storage medium to be executed by the processor 220. The program instructions may be compatible with the operation systems for providing the online to offline service. The computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components. The computing device 200 may also receive programming and data via network communications.
Merely for illustration, only one processor is illustrated in FIG. 2. Multiple processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor of the computing device 200 executes both operation A and operation B, it should be understood that operation A and operation B may also be performed by two different processors jointly or separately in the computing device 200 (e.g., the first processor executes operation A and the second processor executes operation B, or the first and second processors jointly execute operations A and B) .
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
As illustrated in FIG. 3, the mobile device 300 may include a communication unit 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. The CPU may include interface circuits and processing circuits similar to the processor 220. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300. In some embodiments, a mobile operating system 370 (e.g., iOS TM, Android TM, Windows Phone TM, etc. ) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to a voice request for a service. User interactions with the information stream may be achieved via the I/O 350 and provided to the processing engine 112 and/or other components of the AI system 100 via the network 120. The communication unit 310 may be any information exchange port, information transmitting port, or network port to facilitate data communications.
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the online to offline service system 100, and/or other components of the online to offline service system 100 described with respect to FIGs. 1-7) . The hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to provide a service in response to a voice request as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or another type of work station or terminal  device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
One of ordinary skill in the art would understand that when an element of the online to offline service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when the client terminal 140 sends out the query, a processor of the client terminal 140 may generate electrical signals encoding the accident report. The processor of the client terminal 140 may then send the electrical signals to at least one information receiving port of an information providing system associated with the client terminal 140. Within an electronic device, such as the client terminal 140, and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium (e.g., the storage device 130) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals. After the processer of the server 110 determining a result, the processor may generate electric signals encoding the result, and send the electric signals to at least one information transimitting port of an information receiving system.
FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. The processing engine 112 may include an obtaining module 410, a determination module 420, a match module 430, and a storing module 440.
The obtaining module 410 may be configured to obtain feature data of the POI from online service platform. For example, the obtaining module 410 may be configured to obtain first feature data from a first online to offline service platform. The first feature data may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, or a type of the POI, or the like, or any combination thereof. The first online to offline service platform may configured to provide a navigation and/or map service, such as Baidu Map, Google Map, Amap, Tencent Map, Beidou Map, GPS Map, Sogou Map, etc. For another example, the obtaining module 410 may be configured to obtain second feature data from a second online to offline service platform. The second feature data may include an evaluation score of the POI, a number of consumption times of the POI, or a number of reviews of the POI, or the like, or any combination thereof.
The determination module 420 may be configured to determine one or more groups of indexing labels. An indexing label may be configured to denote a characteristic (e.g., types) of a POI, such as the type of the POI, the tag of the POI, etc. Each group of the one or more groups of indexing labels may be ranked into a plurality of levels. Each of the plurality of levels in one group may include one or more indexing labels. An indexing label may be configured to denote a characteristic (e.g., types) of a POI, such as the type of the POI, the tag of the POI, etc. For example, an indexing label may include “Movie” , “Hotel” , “Tourism” , “Beauty” , etc. An indexing label with a higher level in the each group may have a higher priority for searching than an indexing label with a lower level. For example, a first indexing label in one group may be “Food” , and a second indexing label in the one group may be “Fast Food” , or “Chinese Food” , or “Coffee” , or “Barbecue” , etc. As another example, a first indexing label in another group may be “Tourism” , and a second indexing in the another group may be “Exhibition” , “Attractions” , “Zoo” , etc. In some embodiments, the determination module 420 may determine one or more indexing labels in a group based on feature data of the POIs (e.g., the first feature data) . For example, the first feature data of a POI may include one or more types  or tags of the POI. The determination module 420 may designate the types or tags of the POI as one or more levels of indexing labels. As a further example, the types or tags of a POI “Chongqing Hot Pot” obtained from the first online to offline service platform may be “Food” and “Hot Pot. ” The determination module 420 may designate “Food” as an indexing label with a first level (or highest level) , and designate “Hot Pot” as an indexing label with a second level (or secondary level) lower than the first level.
The matching module 430 may be configured to match the POI with one or more target indexing labels from the one or more groups of indexing labels. In some embodiments, the matching module 430 may determine a target group the POI belongs from the plurality of groups of indexing labels by comparing the POI with indexing labels having the same level in each of the plurality of groups of indexing labels. For example, the indexing labels having the same level in each of the plurality of groups of indexing labels may have the highest level (or first level) . The matching module 430 may determine the target group based on the comparison. For example, the matching module 430 may determine similarities between the first feature data of the POI and the indexing labels having the same level in each of the plurality of groups of indexing labels. The matching module 430 may determine the target group whose indexing label has a maximum similarity with the first feature data. Then the matching module 430 may match the POI with one or more targets indexing labels with different levels in the target group. In some embodiments, the matching module 430 may match a plurality of POIs with corresponding target indexing labels to form multiple databases corresponding to the target indexing labels. For example, if the target indexing labels is “Coffee” , the processing engine 112 may form a coffee database including a plurality of cafes and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of cafes.
The storing module 440 may be configured to store the first feature data, the second feature data of the POI, and the matched target indexing labels to form a  database. The storing module 440 may store the first feature data, the second feature data of the POI, and the matched target indexing labels using a data storing model. For example, if the storing module 440 stores the first feature data, the second feature data of the POI, and the matched target indexing label using MySQL, the closure table model may be used by the processing engine 112 to store the data.
The modules in the processing engine 112 may be connected to or communicate with each other via a wired connection or a wireless connection. The wired connection may include a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof. The wireless connection may include a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof. Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units. For example, the obtaining module 410 and the storing module 440 may be combined as a single module which may both obtain and store the feature data and matched target indexing labels. As another example, the processing engine 112 may include a storage module (not shown) used to store data and/or information for determining the indexing labels. In some embodiments, the processing engine 112 may further include a recommendation module configured to recommend one or more POIs to a client terminal. In some embodiments, the recommendation module may be integrated into the matching module 430.
FIG. 5 is a flowchart illustrating an exemplary process for constructing a database according to some embodiments of the present disclosure. The process 500 may be executed by the online to offline service system 100. For example, the process 500 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 500. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described and/or without  one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 5 and described below is not intended to be limiting.
In 510, the processing engine 112 (e.g., the processor 220, the obtaining module 410) may obtain first feature data of a point of interest (POI) from a first online to offline service platform. The POI may be a restaurant, a couture shop, a hotel, a view spot, an entertainment venue (e.g., a KTV, a cinema, etc. ) , a fitness center, a beauty parlor, an art gallery, a supermarket, a coffee shop, a shopping mall, a playing center, etc. As used herein, the first feature data of a specific POI may be defined by a characteristic of the specific POI that may be used to identify or distinguish the specific POI from other POIs or other types of POIs. The first feature data of the POI may include an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, a type of the POI, a telephone number, or the like, or any combination thereof. For example, a first POI may be “Starbucks” and a second POI may be “MacDonald. ” The name of the first POI “Starbucks” and the name of the second POI “MacDonald” may be used to distinguish the first POI with the second POI. The type of the first POI “Starbucks” may be a coffee shop (or café) , and the tag of the first POI “Starbucks” may be “Coffee. ” The type of the second POI “MacDonald” may be a restaurant, and the tag of the second POI “MacDonald” may be “Western Food. ” The type or tag of the first POI “Starbucks” and the type or tag of the second POI “MacDonald” may be used to distinguish the first POI with the second POI.
The first online to offline service platform may be configured to provide a first online to offline service. Exemplary online to offline services may include a transportation service, a shopping service, a meal booking service, a map service, a navigation service, a review service, a traveling service, a social service, a meal booking, an online shopping, etc. In some embodiments, the first online to offline service platform may be an online navigation and/or map platform, etc. Exemplary online navigation and/or map platform may include Google Map, Baidu Map, Amap,  Apple Map, Beidou Navigation Satellite System, Tencent map, Sogou Map, Careland Mape, GPS Navigation and Map, etc. A navigation and/or map platform may provide information and/or data relating to a plurality of POIs, such as coordinates, addresses, names, etc. In some embodiments, the first online to offline service platform may be an online review platform, etc. Exemplary online review platforms may include MeiTuan, DIAN PING, KouBei, ENJOY, YHOUSE, MARS, Ctrip, Lvmama, etc. An online review platform may provide information and/or data relating to a plurality of POIs, such as addresses, names, telephone numbers, types, tags, etc.
In some embodiments, the processing engine 112 (e.g., the processor 220, the obtaining module 410) may obtain the first feature data from the first online to offline service platform via a network (e.g., the network 120) using a Web Crawler technique. Exemplary web crawler techniques may include a General Purpose Web Crawler technique, a Focused Web Crawler technique, an Incremental Web Crawler technique, a Deep Web Crawler technique, etc. The Web Crawler technique may be developed using Hypertext Preprocessor (PHP) (e.g., phpspider, Beanbun, PHPCrawl, etc. ) , Python (e.g., Crawley, Scrapy, Portia, PySpider, etc. ) ,Java (e.g., Apache Nutch2, Crawler4j, WebMagic, WebCollector, Heritrix, Spiderman, SeimiCrawler, jsoup, etc. ) , C# (e.g., DotnetSpider, NWebCrawler, SmartSpider, Abot, xNet, AngleSharp, HtmlAgilityPack, CSQuery, etc. ) , C/C++ (e.g., Open-source-search-engine, Cobweb, Opton, Wombat, Spidr, Larbin, etc. ) , etc. Using the Web Crawler technique, the processing engine 112 may obtain the first feature data from the first online to offline service platform based on a fetching strategy. Exemplary fetching strategies may include a depth first traversal strategy, a breadth first traversal strategy, a partial page rank strategy, a backward link number strategy, an OPIC strategy, a larger sites first strategy, etc. For example, the processing engine 112 may obtain the first feature data of POI via an application programming interface (API) provided by the first online to offline service platform using a Python Web Crawler. The API may include a plurality of predefined  functions that may be configured to access a set of routines based on a piece of software or hardware. The processing engine 112 (e.g., the processor 220, the obtaining module 410) may obtain a plurality of POIs by setting different API access parameters according to different platforms. The data or information relating to the POIs (e.g., the first feature data of the POI) may be saved in a specific format, such as Json, XML, etc. After further processing, the POIs can be saved in a database (e.g., MySQL, MongoDB, Oracle, etc. ) .
In 520, the processing engine 112 (e.g., the processor 220, the obtaining module 410) may obtain second feature data of the POI from a second online to offline service platform. As used herein, the second feature data of the POI may be defined by an evaluation of the POI. The evaluation of the POI may relate to consumption person, environment, discount, transportation, location, products/services provided by the POI, etc. For example, if the POI is a restaurant, the evaluation of the POI may relate to an amount of money consumed per person, speed for serving dishes, types of dishes, taste of dishes, whether the food material is fresh, whether the dishes is delicious, whether parking is convenient for the restaurant, whether the restaurant is clean and/or tidy, whether the waiters are polite, whether there is a discount activity, etc. As another example, if the POI is a tourist attraction, the evaluation of the POI may relate to an amount of money consumed per person, whether the transportation is convenient, whether the environment is hygienic, whether the service is nice, whether the tourist attraction is crowded, whether the tourist attraction is impressive and beautiful, whether parking is convenient for the tourist attraction, etc. In some embodiments, the evaluation of the POI may be generated by one or more users (e.g., consumers) via the second online to offline service platform.
In some embodiments, the second feature data of the POI may include an evaluation score of the POI, a total number of evaluations or reviews of the POI, a total number of consumption times of the POI, a positive feedback rate of the POI, a negative feedback rate, one or more complaints, or the like, or any combination  thereof. The second online to offline service platform may be configured to provide a second online to offline service. Exemplary online to offline services may include a transportation service, a shopping service, a meal booking service, a map service, a navigation service, a review service, a traveling service, a residential service, etc., as described elsewhere in the present disclosure. In some embodiments, the second online to offline service platform may be an online review and/or transaction platform. For example, the online review and/or transaction platform may include “MeiTuan” , “DIAN PING” , “KouBei” , “ENJOY” , “YHOUSE” , “MARS” , “Ctrip” , “Lvmama” , etc. The online and/or transaction review platform may provide information and/or data relating to a plurality of POIs, such as reviews, discounts, a telephone number associated with a POI, addresses, names, etc. For example, “DIAN PING” may offer a local business search, reviews, detailed business information, discounts, group buying, and other merchant services. In some embodiments, the first online to offline service platform may be same as the second online to offline service platform. For example, the first online to offline service platform and the second online platform may be both a review platform, such as “DIAN PING” . As another example, the first online platform may be a navigation and/or map platform, such as Amap, and the second online to offline service platform may be a review platform, such as “ENJOY” .
In some embodiments, the processing engine 112 (e.g., the processor 220, the obtaining module 410) may obtain the second feature data from the second online to offline service platform via a network (e.g., the network 120) using a Web Crawler technique as described elsewhere in present disclosure. For example, the web crawler technique may include a General Purpose Web Crawler technique, a Focused Web Crawler technique, Incremental Web Crawler technique, a Deep Web Crawler technique, etc. The Web Crawler technique may be developed using Hypertext Preprocessor (PHP) (e.g., phpspider, Beanbun, PHPCrawl, etc. ) , Python (e.g., Crawley, Scrapy, Portia, PySpider, etc. ) , Java (e.g., Apache Nutch2, Crawler4j, WebMagic, WebCollector, Heritrix, Spiderman, SeimiCrawler, jsoup, etc. ) , C# (e.g.,  DotnetSpider, NWebCrawler, SmartSpider, Abot, xNet, AngleSharp, HtmlAgilityPack, CSQuery, etc. ) , C/C++ (e.g., open-source-search-engine, Cobweb, upton, wombat, Spidr, Larbin, etc. ) , etc. In some embodiments, the processing engine 112 may obtain the second feature data of the POI via an application programming interface (API) provided by the second online to offline service platform using a Python Web Crawler. The data or information relating to the POIs (e.g., the second feature data of the POI) may be saved to a specific format, such as Json, XML, etc. After further processing, the POIs may be saved in a database (e.g., MySQL, MongoDB, Oracle, etc. ) .
In 530, the processing engine 112 (or the determination module 420) may determine one or more groups of indexing labels. Each group of the one or more groups of indexing labels may be ranked into a plurality of levels. Each of the plurality of levels in one group may include one or more indexing labels. An indexing label may be configured to denote a characteristic of a POI, such as the type of the POI, the tag of the POI, etc. For example, an indexing label may include “Food” , “Sport” , “Shopping” , “Movie” , “Hotel” , “Tourism” , “Beauty” , etc. An indexing label with a higher level in the each group may have a higher priority for searching than an indexing label with a lower level. For example, a first indexing label in one group may be “Food” , and a second indexing label in the one group may “Fast Food” , or “Chinese Food” , or “Coffee” , or “Barbecue” , or the like. As another example, a first indexing label another group may be “Tourism” , and a second indexing in another group may be “Exhibition” , “Attractions” , “Zoo” , etc. More than one POIs having a same indexing label may have a similar or same characteristic. For example, “MacDonald” and “Kentucky Fried Chicken (KFC) ” may have the same indexing label “Fast Food. ” “Starbucks” may have a different indexing label “Coffee” with that of “MacDonald. ”
In some embodiments, a group of indexing labels having different levels may be set by a user via a client terminal (e.g., the client terminal 140) . In some embodiments, the processing engine 112 (or the determination module 420) may  obtain one or more groups of indexing labels from the first online to offline service platform, the second online to offline service platform, or any other online service platform. In some embodiments, the processing engine 112 (or the determination module 420) may determine a group of indexing labels based on feature data of the POIs (e.g., the first feature data) . For example, the first feature data of a POI may include one or more types or tags of the POI. The processing engine 112 may designate the types or tags of the POI as one or more levels of indexing labels. As a further example, the types or tags of a POI “Chongqing Hot Pot” obtained from the first online to offline service platform may be “Food” and “Hot Pot. ” The processing engine 112 may designate “Food” as an indexing label with highest level (e.g., the first level as shown in FIG. 8) , and designate “Hot Pot” as a secondary indexing label (e.g., the second level as shown in FIG. 8) .
In 540, the processing engine 112 (e.g., the matching module 430) may match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI. In some embodiments, the processing engine 112 may determine a target group, to which the POI belongs, among the plurality of groups of indexing labels, by comparing the POI with indexing labels on the same level among the plurality of groups of indexing labels. For example, the indexing labels on the same level among the plurality of groups of indexing labels may be on the highest level (e.g., the first level as shown in FIG. 8) . Then the processing engine 112 may determine the target group based on the comparison. For example, the processing engine 112 may determine similarities between the first feature data of the POI and the indexing labels on the same level among the plurality of groups of indexing labels. The processing engine 112 may determine the target group whose indexing label has a maximum similarity with the first feature data of the POI. As used herein, the similarity between the first feature data of the POI and an indexing label may be defined by a distance between the first feature data of the POI and the indexing label. Exemplary distances for  representing a similarity may include a Edit distance, a Euclidean distance, a Manhattan distance, a SinHash distance, a Jaccard distance, etc.
In some embodiments, the processing engine 112 may further compare the POI with one or more indexing labels on different levels in the target group. For example, the processing engine 112 may compare the POI with each of the indexing labels in the target group from a highest level to a lowest level. If a similarity of the POI and a target indexing label in the current level satisfies a condition, the processing engine 112 may determine that the POI and the target indexing label on the current level is matched. Then the processing engine 112 may compare the POI with other indexing labels on a next level of the target indexing label until the POI is matched with a target indexing label in the lowest level. The processing engine 112 may determine that the similarity between the POI and the target indexing label on the current level satisfies the condition if the similarity between the POI and the target indexing label in the current level exceeds a threshold. In some embodiments, the condition may be different with respect to different levels. For example, the higher the level is, the smaller the threshold may be. In some embodiments, the processing engine 112 may directly determine similarities between the POI and each of the indexing labels with the lowest level in the target group. The processing engine 112 may determine the target indexing label who has a maximum similarity with the POI.
Take a POI “Peter’s West Restaurant” as an example. The tag of “Peter’s West Restaurant” may be “Food” or “Western Food. ” As shown in FIG. 8, the processing engine 112 may determine the target group of the POI is “Food” based on the name of the POI, the tag of the POI, etc. Then the processing engine 112 may match the POI with a target indexing label “Western Food” from a second level of indexing labels in the target group “Food” as shown in FIG. 8. The target indexing label “Western Food” may have not a next level of indexing labels. In other words, the target indexing label “Western Food” may be the lowest indexing  label. Then the processing engine 112 may match the POI with the “Western Food Database” corresponding to the lowest indexing label “Western Food. ”
Take a POI “Chongqing Hot Pot” as another example. The tag of “Chongqing Hot Pot” may be “Food” or “Hot Pot. ” As shown in FIG. 8, the processing engine 112 may determine the target group of the POI is “Food” based on the name of the POI, the tag of the POI, etc. Then the processing engine 112 may match the POI with a target indexing label “Chinese Food” from a second level of indexing labels in the target group “Food” as shown in FIG. 8. The target indexing label “Chinese Food” may have a next level (i.e., the third level) of indexing labels. The processing engine 112 may match the POI with a target indexing label “Hot Pot” from the third level of indexing labels. Then the processing engine 112 may match the POI with the “Hot Pot Database” corresponding to the lowest indexing label “Hot Pot. ” More descriptions regarding the matching of the POI with a target indexing label from the one or more groups of indexing labels may be found elsewhere in the present disclosure. See, e.g., FIG. 7 and the relevant descriptions thereof.
In 550, the processing engine 112 (e.g., the storing module 440) may store the first feature data, the second feature data of the POI and the matched target indexing labels to form a database. The processing engine 112 (e.g., the storing module 440) may store the first feature data, the second feature data of the POI, and the matched target indexing labels using a data storing model. Exemplary data storing models may include an adjacency table model, an enumeration path model, a closure table model, a nested set model, or the like. For example, if the processing engine 112 stores the first feature data, the second feature data of the POI, and the matched target indexing labels using MySQL, the closure table model may be used by the processing engine 112 to store the data. In some embodiments, the processing engine 112 may match a plurality of POIs with corresponding target indexing labels according to operation 510 to 540 to form multiple databases corresponding to the target indexing labels. For example, if the target indexing  label on the lowest level is “Coffee” , the processing engine 112 may form a coffee database including a plurality of cafes and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of cafes. As another example, as shown in FIG. 9, the target indexing label on the lowest level is “Foot Massage” , the processing engine 112 may form a “Foot Massage Database” that may include a plurality of foot massage shops and data and/or information (e.g., the first feature data, the second feature data, etc. ) relating to each of the plurality of foot massage shops.
In some embodiments, a user interface (e.g., an online service platform) may receive an input of a query about a POI from a user through, for example, a user interface screen. For example, the query about a target POI may be “a cafe having a closest distance. ” The client terminal may send a signal including the query about a POI to the server110 via the user interface. The processing engine 112 may retrieve and/or determine one or more candidate POIs from a database constructed by the server 110 as described elsewhere in present disclosure in response to receive the signal from the client terminal via the user interface (e.g., an online service platform) . The server110 may further recommend one or more candidate POIs to the client terminal 140 via the user interface.
It should be noted that the flowchart described above is provided for the purposes of illustration, not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be reduced to practice in the light of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, the processing engine 112 m ay perform operation 530 before operations 510 and/or 520.
FIG. 6 is a flowchart illustrating an exemplary process for recommending a POI to a client terminal according to some embodiments of the present disclosure. The process 600 may be executed by the online to offline service online to offline service system 100. For example, the process 600 may be implemented as a set of  instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 600. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 6 and described below is not intended to be limiting.
In process 610, the processing engine 112 (e.g., the matching module 430) may obtain a query about a POI specified by a user via a client terminal. In some embodiments, the user may input the query about a POI via a user interface (e.g., an online service platform) implemented on the client terminal (e.g., the client terminal 140) . The query specified by the user via a client terminal may be in a form of text, voice, image, etc. For example, the query about a POI may be a series of numbers, a word, a phrase, a sentence, or the like, or any combination thereof. In some embodiments, the query may be explicit (also referred to as explicit demand) . As used herein, an explicit demand may refer to a query that specifies a target POI. For example, the query about “Burger King” may be an explicit demand that specifies the target POI is “Burger King. ” In some embodiments, the query about a POI may be ambiguous (also referred to as ambiguous demand) . As used herein, an ambiguous demand may refer to a query that does not specify a target POI. For example, the query for inquiring “delicious restaurant” may be an ambiguous demand that does not specify a POI.
In process 620, the processing engine 112 (e.g., the matching module 430) may retrieve data associated with one or more candidate POIs matching with the query from a database. In some embodiments, the processing engine 112 may process the query about a POI to extract one or more keywords from the query. For example, the processing engine 112 may convert the query into a form of text if it is in a form of voice. As another example, the processing engine 112 may perform  a text segmentation operation on the query to extract the one or more keywords. The text segmentation operation may be performed by the processing engine 112 using a text segmentation algorithm. Exemplary text segmentation algorithms may include a TF-IDF (term frequency–inverse document frequency) algorithm, a KEA algorithm, a RAKE algorithm, a TextRank algorithm, etc. The keywords may be used to denote the semantics of the query about a POI. For example, if the query about a POI may be “a Hunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers. ” The processing engine 112 may determine that the keywords of the query “aHunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers” may be “Hunan restaurant” , “an amount of money consumed per person 100 RMB” , and “5 kilometers. ”
In some embodiments, the processing engine 112 (e.g., the matching module 430) may search the database to match one or more candidate POIs with the keywords associated with the obtained query. The database may include a plurality of groups of indexing labels. Each of the plurality of groups of indexing labels may include a plurality of levels of indexing labels. The lowest level in each of the plurality of groups may correspond one or more POIs. The database may store data and/or information of the one or more POIs (e.g., the first feature data and the second feature data as described in FIG. 5) . The processing engine 112 may determine a target indexing label based on a portion of the keywords extracted from the query for inquiring a POI. Then the processing engine 112 may obtain data and/or information of one or more candidate POIs corresponding to the target indexing label. The data and/or information associated with one or more candidate POIs may include first feature data (e.g., a name of a POI, coordinates of a POI, an address of a POI, a telephone number of a POI, etc. ) and second feature data (e.g., an evaluation score of the POI, a number of consumption times of the POI, or a number of reviews of the POI, etc. ) , or the like, or any combination thereof. Further the processing engine 112 may determine one or more candidate POIs based on a  portion of keywords associated with the query about a POI and the data and/or information of the one or more POIs corresponding to the target indexing label. For example, the query about a POI may be “a Hunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers. ” The keywords of the query “a Hunan restaurant having an amount of money consumed per person about 100 RMB and within 5 kilometers” may be “Hunan restaurant” , “an amount of money consumed per person 100 RMB” , and “5 kilometers. ” The processing engine 112 may determine that the target indexing label may be “Hunan Restaurant. ” The engine 112 may determine a plurality of POIs associated with the target indexing label “Hunan Restaurant. ” The processing engine 112 may further determine one or more candidate POIs from the plurality of POIs based on keywords “an amount of money consumed per person 100 RMB” , and “5 kilometers. ”
In some embodiments, the processing engine 112 may determine a target group from the plurality of groups of indexing labels by comparing the keywords with indexing labels having the same level in each of the plurality of groups of indexing labels. For example, the indexing labels having the same level in each of the plurality of groups of indexing labels may have the highest level. Then the processing engine 112 may determine the target group based on the comparison. For example, the processing engine 112 may determine similarities between the keywords and the indexing labels having the same level in each of the plurality of groups of indexing labels. The processing engine 112 may determine the target group whose indexing label has a maximum similarity with the keywords.
In some embodiments, the processing engine 112 may further compare the keywords with one or more indexing labels in the target group. For example, the processing engine 112 may compare the keywords with each of the indexing labels in the target group from a highest level to a lowest level. If a similarity of the POI and an indexing label on a current level satisfies a condition, the processing engine 112 may determine that the keywords (i.e., the query) and the indexing label on the current level is matched. In some embodiments, the processing engine 112 may  determine that the similarity between the keywords and the indexing label satisfies the condition if the similarity between the keywords and the indexing label exceeds a threshold. Then the processing engine 112 may compare the keywords with other indexing labels in the next level of the current level until the POI is matched with an indexing label in the lowest level.
As another example, the processing engine 112 may directly determine similarities between the keywords and each of the indexing labels in the target group. The processing engine 112 may determine the target indexing label who has a maximum similarity with the keywords. For example, if the keyword is “Western Restaurant” , the processing engine 112 may determine the target group is “Food” based on the keyword “Western Restaurant. ” Then the processing engine 112 may compare the query with indexing labels, for example, “Western Food” , “Coffee” , “Chinese Food” , “Sichuan Cuisine” , “Shanghai Cuisine” , “Hot Pot” , etc., in the target group “Food” as shown in FIG. 8. The processing engine 112 may match the POI “Western Restaurant” with the “Western Food. ”
In process 630, the processing engine 112 (e.g., the matching module 430) may recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs. In some embodiments, the processing engine 112 (e.g., the matching module 430) may recommend all the one or more candidate POIs to the client terminal. In some embodiments, the processing engine 112 (e.g., the matching module 430) may recommend a portion of the one or more candidate POIs according to a default setting of the online to offline service system 100. For example, the processing engine 112 may rank the one or more candidate POIs according to, for example, the second feature data of each of the one or more candidate POIs, such as an amount of money consumed per person, evaluation score, etc., the first feature data such as location, etc., or the like, or a combination thereof. In some embodiments, the processing engine 112 may recommend the top few (e.g., top three, top four, top  five, etc. ) or bottom few (e.g., bottom three, bottom two, bottom one, etc. ) in the rank to the client terminal.
In some embodiments, the processing engine 112 (e.g., the matching module 430) may recommend the at least one of the one or more candidate POIs to the user based on the historical data associated with the user. The processing engine 112 (e.g., the matching module 430) may obtain historical data associated with the user from the client terminal. The historical data associated with the user may include a plurality of historical search records, historical orders for an online service, etc., for a time period. The time period may be a past week, a past month, a past three months, a past six months, or the like. The historical data associated with the user may be used to determine a preference of the user for, for example, taste, location, hobby, etc.
In some embodiments, the processing engine 112 (e.g., the matching module 430) may recommend the user at least one of one or more candidate POIs in different forms. The candidate POIs may be presented in such as text, numbers, symbols, images, a diagram, or the like, or any combination of there. For example, an overview of the candidate POIs may be described using text and numbers. Symbols may represent customer satisfaction, such as heart-shaped symbols or smiley symbols. Images may visualize candidate POIs and other POIs around the candidate POIs. Diagrams may be used to provide a comparison of the evaluation scores of the candidate POIs, the total number of evaluations of the candidate POI, the total number of consumption times of the candidate POI, or the like, or any combination thereof of the one or more candidate POIs.
In some embodiments, the processing engine 112 (e.g., the matching module 430) may transmit a signal to the client terminal. The signal may include the one or more candidate POIs and the data and/or information of the candidate POIs. The signal may be further configured to cause the client terminal to display the candidate POIs to the user. For example, the signal may be configured to cause the client  terminal to present the candidate POIs on a map provided by an online service platform (e.g., a map platform) .
It should be noted that the flowchart described above is provided for the purposes of illustration, not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be reduced to practice in the light of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, process 600 may further include store the query specified by the user. 
FIG. 7 is a flowchart illustrating an exemplary process for determining a target indexing label according to some embodiments of the present disclosure. The process 700 may be executed by the online to offline service online to offline service system 100. For example, the process 700 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 700. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 700 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 7 and described below is not intended to be limiting. Operation 540 and/or 620 may be performed according to process 700 as illustrated in FIG. 7.
In 702, the processing engine 112 (e.g., the matching module 430) may obtain a first indexing label from a first group of indexing labels. In some embodiments, the first indexing label may correspond to the highest level of the first group. As shown FIG. 8, the highest level may be “Play” , “Food” , “Sport” , “Shopping” , “Movie” , “Hotel” , “Tourism” , “Beauty” , etc.
In 704, the processing engine 112 (e.g., the matching module 430) may determine a similarity between a POI with the first indexing label. In some embodiments, the similarity between a POI with the first indexing label may be  determined based on the first feature data as described in connection with FIG. 5. The similarity between the POI and the first indexing label may be defined by a distance between the first feature data of the POI and the first indexing label as described elsewhere in the present disclosure (e.g., FIG. 5 and the descriptions thereof) . The higher the distance between the first feature data of the POI and the first indexing label is, the lower the similarity between the POI and the first indexing label may be. In some embodiments, the similarity between a POI and the first indexing label may be determined based on a query about the POI as described in connection with FIG. 6. For example, the processing engine 112 may receive the query about the POI from the client terminal 140. The processing engine 112 may extract one or more keywords from the query and determine the similarity between the one or more keywords and the first indexing label. The similarity between the query and the first indexing label may be defined by a distance between the at least one keywords and the first indexing label as described elsewhere in the present disclosure (e.g., FIG. 5 and the descriptions thereof) . The higher the distance between the at least one keywords and the first indexing label is, the lower the similarity between the query about the POI and the first indexing label may be. In some embodiments, the similarity may be denoted by a coefficient. For example, the coefficient may be a percentage, such as 90%, 80%, 70%, 50%, 40%, etc. In some embodiments, the similarity may be described by adverb of degree based on the distance between the POI and the first indexing label. For example, the adverb may include fairly, pretty, rather, quite, very, much, too, greatly, almost, nearly, half, highly, awfully, deeply, partly, perfectly, really, and the like.
In 706, the processing engine 112 (e.g., the matching module 430) may determine whether the similarity meets a first condition. The first condition may be configured to determine whether the POI belongs or matches to the first indexing label. In some embodiments, if the similarity between the POI with the first indexing label meets the first condition, the processing engine 112 may proceed to operation  710. If the similarity between the POI with the first indexing label does not meet the first condition, the processing engine 112 may proceed to operation 708.
In some embodiments, the first condition may be a first threshold, a first range, etc. If the similarity between the POI with the first indexing label is equal to or lower than the first threshold, the processing engine 112 may determine that the similarity between the POI with the first indexing label does not satisfy the first condition. In other words, the first indexing label may not match the POI. If the similarity between the POI with the first indexing label exceeds the first threshold, the processing engine 112 may determine that the similarity between the POI with the first indexing label satisfies the first condition. In other words, the first indexing label may match the POI. In some embodiments, the first condition may relate to a maximum of similarities between the POI with the first indexing label corresponding to each group of the plurality of groups. If the similarity between the POI with the first indexing label is maximum, the processing engine 112 may determine that the similarity between the POI with the first indexing label satisfies the first condition. If the similarity between the POI with the first indexing label is not maximum, the processing engine 112 may determine that the similarity between the POI with the first indexing label does not satisfy the first condition. The first condition may be pre-determined by the processing engine 112 or a user. For example, the processing engine 112 may set the first condition according to the different levels of indexing labels. For example, the higher a level of an indexing label in one group is, the lower the first threshold may be. The lower a level of an indexing label in one group is, the greater the first threshold may be. In some embodiments, the first condition may be adjusted. For example, if the processing engine 112 determines that there is no first indexing label in all the plurality of groups matching with the POI, the processing engine 112 may decrease the first threshold. If the processing engine 112 determines that there are more than two first indexing labels in all the plurality of groups matching with the POI, the processing engine 112 may increase the first threshold.
In 708, the processing engine 112 (e.g., the matching module 430) may update the first group of indexing labels using a second group of indexing labels or other groups. In some embodiments, if the similarity between the POI with the first indexing label does not meet the first condition, the POI may not match the first indexing label in the first group (e.g., “Play” as shown in FIG. 8) . In other words, the POI may not belong to or match the first group of indexing labels. Then, the processing engine 112 (e.g., the matching module 430) may continue to determine whether the POI matches the second group (e.g., “Food” as shown in FIG. 8) , a third group (e.g., “Sport” as shown in FIG. 8) , ..., etc. The processing engine 112 (e.g., the matching module 430) may determine a target group from the plurality of groups until the first condition is met. The first group of indexing labels may be updated by designating the second group of indexing labels as the first group of indexing labels. The processing engine 112 (e.g., the matching module 430) may perform operations 702 to 706 to determine whether the second group of indexing labels match with the POI. For example, if the first indexing label in the first group of indexing labels is “Play” , the POI is “KFC” , and the POI “KFC” may not belong to or match indexing label “Play” . The processing engine 112 (e.g., the matching module 430) may obtain the second group of indexing labels having a highest level of indexing label “Food” . The second group of indexing labels may be designated as the first group of indexing labels and the highest level of indexing label “Food” may be designated as the first indexing label. The processing engine 112 (e.g., the matching module 430) may perform operations 702 to 706 to determine whether the POI “KFC” matches with the highest indexing label “Food” .
In 710, the processing engine 112 (e.g., the matching module 430) may update the first indexing label using a second indexing label from the first group of indexing labels. The first group of indexing labels may also be referred to as a target group if the first indexing label satisfies the condition. The second indexing label may correspond to a lower level with respect to the first indexing label. For example, if the first indexing label corresponds to a highest level (i.e., the first level  as shown in FIG. 8) , the second indexing label may correspond to a second level as shown in FIG. 8. As a further example, if the first indexing label is “Food” , the second indexing label may be one of “Western Food” , “Coffee” , “Chinese Food” , “Barbecue” , etc. In some embodiments, the second indexing label may be also referred to as a sub-indexing label of the first indexing label. The first indexing label may be updated by designating the second indexing label as the first indexing label. The processing engine 112 (e.g., the matching module 430) may perform operations 710 to 712 to determine whether the second indexing label matches with the POI. For example, if the first indexing label in the target group of indexing labels is “Food” , the POI is “KFC” , and the POI “KFC” may belong to or match indexing label “Food” . The processing engine 112 (e.g., the matching module 430) may obtain the second group of indexing labels having a lower level of indexing label “Food” , such as “Chinese Food” , “Western Food” , etc. The second indexing label may be designated as the first indexing label. The processing engine 112 (e.g., the matching module 430) may perform operations 710 to 712 to determine whether the POI “KFC” matches with the lower level of indexing label until a lowest level of indexing label matching with the POI “KFC” .
In 712, the processing engine 112 (e.g., the matching module 430) may determine whether the similarity between the POI with the second indexing label meets a second condition. The second condition may be configured to determine whether the POI belongs to or matches the second indexing label. In some embodiments, if the similarity between the POI with the second indexing label meets the second condition, the processing engine 112 may proceed to process 714. If the similarity between the POI with the second level indexing label does not meet the second condition, the processing engine 112 may proceed to perform 710.
In some embodiments, the second condition may be a second threshold, a second range, etc. If the similarity between the POI with the second indexing label is equal to or lower than the second threshold, the processing engine 112 may determine that the similarity between the POI with the second indexing label does  not satisfy the second condition. In other words, the second indexing label may not match the POI. If the similarity between the POI with the second indexing label exceeds the second threshold, the processing engine 112 may determine that the similarity between the POI with the second indexing label satisfies the second condition. In other words, the second indexing label may match the POI.
In some embodiments, the second threshold may be higher than the first threshold. For example, if the similarity is expressed as percentage, 50%or more similarity may meet the first condition, and 80%or more similarity may meet the second condition. In some embodiments, the second condition may be adjusted by the online to offline service system 100. For example, if the processing engine 112 determines that there is no second indexing label in all the plurality of groups matching with the POI, the processing engine 112 may decrease the second threshold. If the processing engine 112 determines that there are more than two second indexing labels in the first group matching with the POI, the processing engine 112 may increase the second threshold.
In 714, the processing engine 112 (e.g., the matching module 430) may match the second indexing label with the POI. In some embodiments, if the similarity between the POI with the second indexing labels meets the second condition, the POI may belong to the second indexing label. For example, if the tag of the POI is “Cafe” , the POI may belong to or match the second indexing label “Coffee. ”
It should be noted that the flowchart described above is provided for the purposes of illustration, not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be reduced to practice in the light of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. Process 700 may further include obtain one or more candidate POIs matched with the query about the POI. In some embodiments, process 700 may be also used to query a POI.
Example 1
FIG. 8 is schematic diagrams illustrating an exemplary structure of a database system according to some embodiments of the present disclosure. As shown in FIG. 8, the database system may have a pyramidal hierarchical structure. The pyramidal hierarchical structure may include a plurality of groups of indexing labels, for example, “Play” , “Food” , “Sport” , “Shopping” , “Movie” , “Hotel” , “Tourism” , “Beauty” , etc. Each group of the plurality of groups of indexing labels may be classified into one or more levels, such as the first level, the second level, the third level, … , etc. The first level may also be the highest level. Each group may have the lowest level of indexing labels. For example, the lowest level in the group “Food” may include “Coffee” , “Barbecue” , “Western Food” , “Shanghai Cuisine” , “Sichuan Cuisine” , “Cantonese Cuisine” , etc. Each of the lowest level of indexing labels may correspond to a database which may store data and/or information (e.g., the first feature, the second feature data, etc. ) of one or more POIs matched with each of the lowest level of indexing labels
Example 2
FIG. 9 is schematic diagrams illustrating an exemplary database according to some embodiments of the present disclosure. As shown in FIG. 9, a database relating to “Foot Massage” may include a plurality of POIs, such as Yuizumi Yoshiko (Jinyuan) , VICI LAN SPA&LAN MASSAGE SALON, Chrysanthemum SPA, etc. The database relating to “Foot Massage” may include data and/or information relating to each of the plurality of POIs, such as name, address, label, score, the total number of consumptions, the total number of reviews for each of POIs, etc. 
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations,  improvements, and modifications are intended to be suggested by this disclosure and are within the spirit and scope of the exemplary embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
Further, it will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable medium having computer readable program code embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may  communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 2103, Perl, COBOL 2102, PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy, or other programming languages. The program code may execute entirely on the user’s computer, partly on the user’s computer, as a stand-alone software package, partly on the user’s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit  and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution, for example, an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof to streamline the disclosure aiding in the understanding of one or more of the various inventive embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed object matter requires more features than are expressly recited in each claim. Rather, inventive embodiments lie in less than all features of a single foregoing disclosed embodiment.
In some embodiments, the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ” For example, “about, ” “approximate, ” or “substantially” may indicate ±20%variation of the value it describes, unless otherwise stated. Accordingly, in some embodiments, the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.
Each of the patents, patent applications, publications of patent applications, and other material, such as articles, books, specifications, publications, documents, things, and/or the like, referenced herein is hereby incorporated herein by this reference in its entirety for all purposes, excepting any prosecution file history  associated with same, any of same that is inconsistent with or in conflict with the present document, or any of same that may have a limiting affect as to the broadest scope of the claims now or later associated with the present document. By way of example, should there be any inconsistency or conflict between the description, definition, and/or the use of a term associated with any of the incorporated material and that associated with the present document, the description, definition, and/or the use of the term in the present document shall prevail.
In closing, it is to be understood that the embodiments of the application disclosed herein are illustrative of the principles of the embodiments of the application. Other modifications that may be employed may be within the scope of the application. Thus, by way of example, but not of limitation, alternative configurations of the embodiments of the application may be utilized in accordance with the teachings herein. Accordingly, embodiments of the present application are not limited to that precisely as shown and described.

Claims (24)

  1. A system for database construction, comprising:
    at least one storage medium including a set of instructions;
    at least one processor in communication with the at least one storage medium, wherein when executing the set of instructions, the at least one processor is directed to cause the system to:
    obtain first feature data of a point of interest (POI) from a first online service platform;
    obtain second feature data of the POI from a second online service platform;
    determine one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which include one or more indexing labels;
    match the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI; and
    store the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
  2. The system of claim 1, wherein the first feature data of the POI includes at least one of an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, or a type of the POI.
  3. The system of claim 1 or 2, wherein the second feature data of the POI comprises at least one of an evaluation score of the POI, a number of consumption times of the POI, and a number of reviews of the POI.
  4. The system of any one of claims 1 to 3, wherein the first online platform is configured to provide a map service.
  5. The system of any one of claims 1 to 4, wherein the second online platform is  configured to provide a review service.
  6. The system of any one of claims 1 to 5, wherein the at least one processor is directed to cause the system to:
    obtain the second feature data of the POI from the second online platform using a Python technique.
  7. The system of any one of claims 1 to 6, wherein to match the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI, the at least one processor is directed to cause the system to:
    compare the POI with at least a portion of indexing labels of one of the one or more groups of indexing labels from a highest level to a lowest level; and
    determine the target indexing label based on the comparison.
  8. The system of claim 7, wherein to compare the first feature data of the POI with at least a portion of indexing labels of one of the one or more groups of indexing labels, the at least one processor is directed to cause the system to:
    determine a similarity between the POI with the each indexing label of the one of the one or more groups of indexing labels; and
    determine the target indexing label having the similarity satisfying a condition.
  9. The system of any one of claims 1 to 8, wherein the system further comprises a data exchange port connected to one or more online platforms for providing online-to-offline services, and the at least one processor is further directed to cause the system to:
    obtain a query about the POI specified by a user via a client terminal;
    retrieve data associated with one or more candidate POIs matching with the query from the database; and
    recommend at least one of the one or more candidate POIs to the user based on  the retrieved data associated with the one or more candidate POIs.
  10. The system of claim 9, wherein to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs, the at least one processor is further directed to cause the system to:
    obtain historical data associated with the user from the client terminal; and
    recommend the at least one of the one or more candidate POIs to the user based on both the retrieved data associated with the one or more candidate POIs and the historical data associated with the user.
  11. A system for recommendation, comprising:
    a data exchange port connected to one or more online to offline service platforms for providing online-to-offline services;
    at least one storage medium including a set of instructions;
    at least one processor in communication with the at least one storage medium, wherein when executing the set of instructions, the at least one processor is directed to cause the system to:
    obtain a query about a POI specified by a user via a client terminal;
    retrieve data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs, wherein the database is constructed by:
    determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which include one or more indexing labels;
    obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI;
    obtaining second feature data of the POI from a second online  platform, the second feature data being associated with an evaluation of the POI;
    matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI; and
    storing the first feature data, the second feature data of the POI, and the matched target indexing label; and
    recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  12. The system of claim 11, wherein the first feature data of the POI includes at least one of an address of the POI, a name of the POI, coordinates of the POI, a tag of the POI, or a type of the POI.
  13. The system of claim 11 or 12, wherein the second feature data of the POI comprises at least one of an evaluation score of the POI, a number of consumption times of the POI, and a number of reviews of the POI.
  14. The system of any one of claims 11 to 13, wherein the first online platform is configured to provide a map service.
  15. The system of any one of claims 11 to 14, wherein the second online platform is configured to provide a review service.
  16. The system of any one of claims 11 to 15, wherein the at least one processor is directed to cause the system to:
    obtain the second feature data of the POI from the second online platform using a Python technique.
  17. The system of any one of claims 11 to 16, wherein the matching the POI with a  target indexing label from the one or more groups of indexing labels based on the first feature data of the POI, includes:
    comparing the POI with at least a portion of indexing labels of one of the one or more groups of indexing labels from a highest level to a lowest level; and
    determining the target indexing label based on the comparison.
  18. The system of claim 17, wherein the comparing the first feature data of the POI with indexing labels of one of the one or more groups of indexing labels includes:
    determining a similarity between the POI with the each indexing label of the one of the one or more groups of indexing labels; and
    determining the target indexing label having the similarity satisfying a condition.
  19. The system of claim 11, wherein to recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs, the at least one processor is further directed to cause the system to:
    obtain historical data associated with the user from the client terminal; and
    recommend the at least one of the one or more candidate POIs to the user based on both the retrieved data associated with the one or more candidate POIs and the historical data associated with the user.
  20. A method implemented on a computing device including a storage device and at least one processor, the method comprising:
    obtaining first feature data of a point of interest (POI) from a first online service platform;
    obtaining second feature data of the POI from a second online service platform;
    determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of  which include one or more indexing labels;
    matching the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI; and
    storing the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
  21. A method for POI recommendation implemented on a computing device including a storage device and at least one processor, the method comprising:
    obtaining a query about a POI specified by a user via a client terminal;
    retrieving data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs, wherein the database is constructed by:
    determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level;
    obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI;
    obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI;
    matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI; and
    storing the first feature data, the second feature data of the POI, and the matched target indexing label; and
    recommending at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  22. A non-transitory computer-readable medium embodying a computer program product, the computer program product comprising instructions configured to cause a computing device to:
    obtaining first feature data of a point of interest (POI) from a first online service platform;
    obtaining second feature data of the POI from a second online service platform;
    determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which include one or more indexing labels;
    matching the POI with one or more target indexing labels from the one or more groups of indexing labels based on the first feature data of the POI; and
    storing the first feature data, the second feature data of the POI, and the matched target indexing label to form a database.
  23. A non-transitory computer-readable medium, embodying a computer program product, the computer program product comprising instructions configured to cause a computing device to:
    obtain a query about a POI specified by a user via a client terminal;
    retrieve data associated with one or more candidate POIs matching with the query from a database including a plurality of POIs, wherein the database is constructed by:
    determining one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, a first indexing label with a higher level in the each group having a higher priority for searching than a second indexing label with a lower level;
    obtaining first feature data of a point of interest (POI) from a first online platform, the first feature data being associated with one or more characteristics of the POI for identifying the POI;
    obtaining second feature data of the POI from a second online platform, the second feature data being associated with an evaluation of the POI;
    matching the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI; and
    storing the first feature data, the second feature data of the POI, and the matched target indexing label; and
    recommend at least one of the one or more candidate POIs to the user based on the retrieved data associated with the one or more candidate POIs.
  24. A system comprising:
    an obtaining module configured to obtain first feature data of a point of interest (POI) from a first online service platform and obtain second feature data of the POI from a second online service platform;
    a determination module configured to determine one or more groups of indexing labels, each group of the one or more groups of indexing labels being ranked into a plurality of levels, each of which include one or more indexing labels;
    a match module configured to match the POI with a target indexing label from the one or more groups of indexing labels based on the first feature data of the POI; and
    a storing module configured to store the first feature data, the second feature data of the POI, and the matched target indexing label.
PCT/CN2018/118617 2018-11-22 2018-11-30 System and method for constructing database WO2020103183A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811399017.3A CN111209491A (en) 2018-11-22 2018-11-22 System and method for database building
CN201811399017.3 2018-11-22

Publications (1)

Publication Number Publication Date
WO2020103183A1 true WO2020103183A1 (en) 2020-05-28

Family

ID=70774323

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/118617 WO2020103183A1 (en) 2018-11-22 2018-11-30 System and method for constructing database

Country Status (2)

Country Link
CN (1) CN111209491A (en)
WO (1) WO2020103183A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100496A (en) * 2020-09-14 2020-12-18 北京嘀嘀无限科技发展有限公司 Vehicle model data standardized matching method and system
CN112381603A (en) * 2020-11-05 2021-02-19 深圳创维-Rgb电子有限公司 Television shopping price comparison processing method and device, intelligent terminal and storage medium
CN113361920A (en) * 2021-06-04 2021-09-07 上海华客信息科技有限公司 Hotel service optimization index recommendation method, system, equipment and storage medium
CN113656697A (en) * 2021-08-24 2021-11-16 北京字跳网络技术有限公司 Object recommendation method, device, electronic equipment, storage medium and program product
CN114722787A (en) * 2022-04-08 2022-07-08 平安科技(深圳)有限公司 Excel cascade-based label matching method and related equipment thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392086B (en) * 2021-05-26 2022-08-16 上海德衡数据科技有限公司 Medical database construction method, device and equipment based on Internet of things

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009126231A1 (en) * 2008-04-07 2009-10-15 Telecommunication Systems, Inc Proximity search for point-of-interest names combining inexact string match with an expanding radius search
CN102591984A (en) * 2012-01-10 2012-07-18 武汉光庭科技有限公司 Optimizing method of query speed of point of interest data in navigation data
CN103457975A (en) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 Method and device for acquiring map interest point evaluation data
TW201419231A (en) * 2012-11-01 2014-05-16 Univ Nat Cheng Kung A location-based point-of-interest recommendation system based on location-based services
US20160337275A1 (en) * 2015-05-12 2016-11-17 Naver Corporation Apparatus, method, and computer program for providing user reviews

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504290A (en) * 2009-03-11 2009-08-12 凯立德欣技术(深圳)有限公司 Navigation system and its interest point peripheral searching method
US8204886B2 (en) * 2009-11-06 2012-06-19 Nokia Corporation Method and apparatus for preparation of indexing structures for determining similar points-of-interests
CN102147795A (en) * 2010-02-05 2011-08-10 北京四维图新科技股份有限公司 Method and device for searching points of interest as well as navigation system
CN108763293A (en) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 Point of interest querying method, device and computer equipment based on semantic understanding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009126231A1 (en) * 2008-04-07 2009-10-15 Telecommunication Systems, Inc Proximity search for point-of-interest names combining inexact string match with an expanding radius search
CN102591984A (en) * 2012-01-10 2012-07-18 武汉光庭科技有限公司 Optimizing method of query speed of point of interest data in navigation data
CN103457975A (en) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 Method and device for acquiring map interest point evaluation data
TW201419231A (en) * 2012-11-01 2014-05-16 Univ Nat Cheng Kung A location-based point-of-interest recommendation system based on location-based services
US20160337275A1 (en) * 2015-05-12 2016-11-17 Naver Corporation Apparatus, method, and computer program for providing user reviews

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100496A (en) * 2020-09-14 2020-12-18 北京嘀嘀无限科技发展有限公司 Vehicle model data standardized matching method and system
CN112381603A (en) * 2020-11-05 2021-02-19 深圳创维-Rgb电子有限公司 Television shopping price comparison processing method and device, intelligent terminal and storage medium
CN113361920A (en) * 2021-06-04 2021-09-07 上海华客信息科技有限公司 Hotel service optimization index recommendation method, system, equipment and storage medium
CN113656697A (en) * 2021-08-24 2021-11-16 北京字跳网络技术有限公司 Object recommendation method, device, electronic equipment, storage medium and program product
CN113656697B (en) * 2021-08-24 2023-12-12 北京字跳网络技术有限公司 Object recommendation method, device, electronic equipment and storage medium
CN114722787A (en) * 2022-04-08 2022-07-08 平安科技(深圳)有限公司 Excel cascade-based label matching method and related equipment thereof
CN114722787B (en) * 2022-04-08 2024-02-06 平安科技(深圳)有限公司 Tag matching method based on Excel cascading and related equipment thereof

Also Published As

Publication number Publication date
CN111209491A (en) 2020-05-29

Similar Documents

Publication Publication Date Title
WO2020103183A1 (en) System and method for constructing database
US9976864B2 (en) Predicted travel intent
US11900444B2 (en) Virtual facility platform
KR102090010B1 (en) Organizing images associated with users
US11468475B2 (en) Apparatuses, computer program products, and methods for generation of augmented reality interfaces
EP3179420A1 (en) Service distribution system and method
CA3066941A1 (en) Method and apparatus for obtaining recommendation information, and electronic device
EP2640098B1 (en) System for Providing Extensible Location-Based Services
US10275403B2 (en) Efficient database searching
KR20170066529A (en) Identifying temporal demand for autocomplete search results
US20140108070A1 (en) Using multi-destination searches to facilitate the purchase of travel itineraries
US11315165B2 (en) Routine item recommendations
KR20170052667A (en) Enhanced search query suggestions
KR102246823B1 (en) How to Adopt Data Across Different Sites
CN104345899B (en) Field conversion method and client for input method
Lund Re-Constructing the Man of Steel: Superman 1938-1941, Jewish American History, and the Invention of the Jewish-Comics Connection
CN111859174A (en) Method and system for determining recommended boarding point
CN106547365A (en) The method and apparatus of commercial product recommending
US10445666B1 (en) Personalized travel itinerary planning
JP2019160320A (en) Location based information search method and system
KR102292545B1 (en) Identifying contexts for content creation
US20220214185A1 (en) Systems and methods for recommendation and display of point of interest
KR102078619B1 (en) Method and system for searching information based on location
US20220374487A1 (en) Flexible variable listings search
JP6345212B2 (en) Information processing server, program, and information processing method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18940488

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18940488

Country of ref document: EP

Kind code of ref document: A1