QT user behavior portrait analysis method, system and device and medium
By adopting universal user data acquisition methods and multiple analysis algorithms in industrial software, the subjectivity of user needs in the existing technology and the invasion of data collection in existing technologies have been solved. Classification.
Patent Information
- Application Number
- CN202411918169.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-25
- Publication Date
- 2025-01-24
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The existing technology relies on qualitative methods in terms of user needs in industrial software, which are highly subjective and lack of credibility, and the user behavior data collection method is highly invasive to application code and cannot be generalized. The analysis method is limited to heat maps. It is difficult to adapt to the classification presentation of larger data sets.
Adopt a general user data collection method, combine the K-MEANS cluster algorithm, the PrefixSpan mining algorithm, and the release analysis method to analyze user behavior data from multiple directions and realize the classification of users.
Through the comprehensive application of a variety of analysis methods, we can more accurately understand the user behavior mode, reduce analysis limitations, improve data processing efficiency, and reduce code invasion and repeated work.
Smart Images

Figure CN119357008A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of data analysis technology, and specifically relates to a QT user behavior portrait analysis method, system, device and medium. Background Art
[0002] QT is a cross-platform application development framework that provides rich functions and tools to help developers quickly build cross-platform graphical user interface programs. Therefore, most industrial software is developed using the QT framework.
[0003] The birth of industrial software requires a continuous cycle of development, use, and optimization based on a full understanding of user needs. At present, the user needs of industrial software are mostly understood through qualitative methods such as user interviews, which are highly subjective and lack credibility. In response to the lack of credibility of qualitative methods, the Internet industry usually uses quantitative methods to build user portraits to understand user needs and preferences. Therefore, in order to better understand the user needs and preferences of QT applications, it is necessary to study how to use user behavior data in QT applications to build user behavior portraits, and make the process as general as possible to facilitate access to multiple QT applications and reduce duplication of work.
[0004] The existing user behavior data collection methods are mainly divided into point reporting and log analysis. Point reporting requires calling the SDK to report the event when the event occurs, and log analysis requires printing relevant logs when the event occurs. These two methods are highly invasive to the application code and cannot be universal. And when analyzing user needs and preferences after data collection, usually only heat map analysis is used. Heat map analysis has limitations in data performance and is not suitable for classification and presentation of larger data sets. In order to avoid the limitations of a single analysis method, it is necessary to combine the results of multiple analysis methods to analyze user behavior. Summary of the invention
[0005] The purpose of the present invention is to provide a QT user behavior portrait analysis method, which, based on general user data collection, realizes data analysis of user behavior from multiple directions through three analysis methods, thereby realizing user segmentation; The second object of the present invention is to provide a QT user behavior profile analysis system based on the above method; The third object of the present invention is to provide a terminal device that can implement a QT user behavior profile analysis method when executing its own program; The fourth object of the present invention is to provide a computer-readable storage medium for storing a corresponding computer program of a QT user behavior profile analysis method.
[0006] In order to achieve the above object, the technical solution adopted by the present invention is as follows: A QT user behavior profile analysis method includes the following steps performed in sequence: S1. During the use of the application, data collection is performed on user operations and corresponding components used by the application to generate user operation data and component information; S2. Extract component information from component information to generate component data, and store the component data and user operation data in a local file; S3, extracting user operation records, component sequences and component images of user operations from local files; Among them, after statistical analysis of user operation records, clustering algorithms are used to cluster user operation habits; mining algorithms are used to mine component sequences that users frequently operate; component images are processed to restore the user operation scene and replay and analyze user operations; S4. According to the result of step S3 and in combination with user information, the users are classified and divided.
[0007] As a limitation, the user operation data in step S1 includes: event type, event time, mouse click, mouse movement, mouse wheel, keyboard click, and shortcut keys; Component information includes: component name, component type and component additional information.
[0008] As a second limitation, in step S3, the clustering algorithm used is the K-Means algorithm; the mining algorithm used is the PrefixSpan algorithm.
[0009] A QT user behavior profile analysis system, used to implement the above-mentioned QT user behavior profile analysis method, including: an agent module, an event collection module, a component information extraction module, a file operation module, a user module, a rule module, a label module, a division module and a visualization module; On the one hand, the proxy module sends signals to the event collection module to start and stop collection; on the other hand, it receives component data and user operation data transmitted by the event collection module, and transmits the component data and user operation data to the file operation module; The event collection module receives and responds to the start and end collection signals transmitted by the proxy module, collects user operation data and component information, and transmits the component information to the component information extraction module; on the other hand, it receives the component data transmitted by the component information extraction module, and transmits the component data and user operation data to the proxy module; The component information extraction module receives the component information transmitted by the event collection module, extracts the component information to generate component data, and transmits the component data back to the event collection module; The file operation module receives the component data and user operation data transmitted by the proxy module, and stores the component data and user operation data in a local file; The tag module is used to extract user operation records from local files, perform statistical analysis, cluster user operation habits using the K-Means clustering algorithm, and transmit the clustering results to the segmentation module; The rule module is used to extract the component sequence of user operations from local files, use the PrefixSpan mining algorithm to mine the component sequence of user frequent operations, and transmit the mining results to the partitioning module; The visualization module is used to extract component images from local files, restore the user operation scene, replay and analyze the user operation, and transmit the replay analysis results to the partitioning module; The user module is used to upload user information and transmit the user information to the partition module; The classification module receives the clustering results transmitted by the label module, the mining results transmitted by the rule module, the playback analysis results transmitted by the visualization module and the user information transmitted by the user module, and classifies and divides the users.
[0010] As a limitation, the agent module adopts the singleton mode class Agent design, including the construction method Agent(), the application exit signal receiving method onAppAboutToQuit() and the event data signal receiving method onUserEvent(); The constructor Agent() is used to start the collection task and send a start collection signal to the event collection module; The application exit signal receiving method onAppAboutToQuit() is used to send a closing collection signal to the event collection module when the application exits; The event data signal receiving method onUserEvent() is responsible for receiving the component data and user operation data transmitted by the event acquisition module and forwarding them to the file operation module.
[0011] As a second limitation, the event collection module implements data collection by installing an event filter object in an application object.
[0012] As a third limitation, the system is further provided with an offline module connected to the rule module and the label module respectively; The offline module is used to receive the K-Means clustering algorithm whose running time in the label module exceeds the set value or the PrefixSpan mining algorithm whose running time in the rule module exceeds the set value, and return the calculation result to the corresponding module after the calculation is completed.
[0013] A terminal device includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the above-mentioned QT user behavior portrait analysis method is implemented.
[0014] A computer-readable storage medium having a computer program stored therein, wherein the computer program is used to implement the above-mentioned QT user behavior portrait analysis method when executed by a processor.
[0015] Due to the adoption of the above technical solution, the present invention has the following technical advances compared with the prior art: (1) The method of the present invention uses three different analysis methods based on user data collection to realize data analysis of user behavior from multiple directions, thereby realizing classification and division of users; (2) The method of the present invention uses the PrefixSpan algorithm to mine the user's frequently operated component sequences, which can reduce the number of candidate sequences generated. By recursively projecting the database, the search space is effectively narrowed, avoiding exhaustive search in large-scale sequence data, and improving efficiency. (3) The method of the present invention uses the K-Means algorithm to cluster user operation habits, which is highly interpretable and suitable for dealing with large-scale data sets; (4) In the method of the present invention, playback analysis is added when analyzing user behavior profiles, which is conducive to reproducing user behavior trajectories and helping to deeply analyze users' specific operations and needs, thereby more comprehensively understanding user behavior patterns; (5) The system of the present invention adopts a singleton-mode class Agent design in the agent module, so that any part of the system can easily access the Agent instance, effectively avoiding the duplication of resources. There is no need to create a new instance each time the Agent is used, reducing code redundancy and improving code readability and maintainability. (6) In the system of the present invention, data collection is realized by installing the event filter object in the application object. When collecting data, only one object needs to be initialized in the main function, and there is no need to reconstruct the existing code, thereby simplifying the deployment and maintenance process; (7) An offline module is added to the system of the present invention. When the algorithm takes a long time, the data can be transferred to the offline module for processing, thereby speeding up the data processing speed of the entire system.
[0016] The present invention belongs to the technical field of data analysis, and can realize data analysis of user behaviors from multiple directions through three analysis methods on the basis of general user data collection, thereby realizing user segmentation. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings are used to provide further understanding of the present invention and constitute a part of the specification. They are used to explain the present invention together with the embodiments of the present invention and do not constitute a limitation of the present invention.
[0018] In the attached picture: Figure 1 This is a processing flow chart of Embodiment 1 of the present invention; Figure 2 Schematic diagram of the distribution mechanism of QT events in the present invention; Figure 3 This is a schematic diagram of the playback effect in Example 1 of the present invention; Figure 4 This is a system structure block diagram of embodiment 2 of the present invention. DETAILED DESCRIPTION
[0019] The preferred embodiments of the present invention are described below in conjunction with the accompanying drawings. It should be understood that the preferred embodiments described herein are only used to illustrate and explain the present invention, and are not used to limit the present invention.
[0020] Example 1 like Figure 1 As shown, this embodiment is a QT user behavior profile analysis method, including the following steps performed in sequence: S1. During the use of the application, data on user operations and corresponding components used by the application are collected to generate user operation data and component information.
[0021] Before analyzing the user behavior profile, it is necessary to collect user operation data and component information. User operation data includes: event type, event time, mouse click, mouse movement, mouse wheel, keyboard click, and shortcut keys. Component information includes: component name, component type, and component additional information. Among them, mouse clicks are divided into mouse single clicks and mouse double clicks by type, and button presses are divided into left mouse button and right mouse button; mouse movement is divided into starting point and end point; keyboard clicks are divided into single key and combination key.
[0022] The user's operation in the QT application will generate corresponding QT events, and its distribution mechanism is as follows: Figure 2 As shown in the figure, after the QT event is filtered by the application object and the component object, the component object distributes the event to the corresponding processing function.
[0023] The event filtering of application objects and component objects is implemented by two methods, installEventFilter and eventFilter. installEventFilter is used to install the event filter object, and eventFilter is used to implement the event filter object. For any object that overrides the eventFilter method, it can be installed as an event filter object into the application object or component object. Therefore, this step installs the event filter object into the application object to collect user operation data and component information.
[0024] The specific process of data collection is introduced using mouse movement and shortcut keys as examples.
[0025] For mouse movement, you need to define a constant as the maximum mouse movement time interval and save the information of the last mouse movement to determine the type of mouse movement. When receiving a mouse movement, first determine whether the time interval from the last mouse movement is greater than the set value. If it is greater than the set value, it is considered that the last mouse movement has been completed, and the last saved mouse movement is recorded as the end point type of mouse movement, and the current mouse movement is recorded as the starting point type of mouse movement. If it is less than the set value, it is considered that the mouse is still in the process of moving, and the last saved mouse movement can be updated without recording data.
[0026] For shortcut keys, in QT applications, shortcut keys are bound to QAction components. When the user uses a single key or a key combination, if there is a corresponding QAction bound to it in QT, the shortcut key will be triggered, and the effect is equivalent to clicking the QAction component. After receiving the shortcut key event, the event QEvent is first converted into a shortcut key QShortcutEvent, and then the shortcut key sequence QKeySequence is obtained from it.
[0027] S2. Extract component information from component information to generate component data, and store the component data and user operation data in a local file.
[0028] Among the collected component information, some component structures are multi-layer nested. In order to better distinguish different components, it is necessary to extract the component information and generate the component information by recursively searching the parent component and obtaining the corresponding name.
[0029] After the data collection is completed, the data needs to be saved in a local file in a certain format. Since the csv file type format is simple and easy to read, this embodiment uses the csv format for storage. "," is used as a separator between data columns, and "\n" is used as a separator between data rows. It should be noted that if the data contains these two characters, escape processing is required to avoid data confusion.
[0030] S3, extracting user operation records, component sequences and component images of user operations from local files; Among them, after statistical analysis of user operation records, the K-Means clustering algorithm is used to cluster user operation habits; the PrefixSpan mining algorithm is used to mine the component sequences of user operations that are frequently operated by users; the component images are processed to restore the user operation scene, and the user operations are replayed and analyzed.
[0031] After acquiring the collected data of user behavior, it is necessary to perform relevant analysis on the data. This embodiment extracts user operation records, component sequences and component images of user operations from local files, and uses different analysis methods to analyze user behavior.
[0032] After statistical analysis of user operation records, the K-Means clustering algorithm is used to cluster user operation habits.
[0033] K-Means is a widely used clustering algorithm that aims to divide data points into K clusters so that the points within each cluster are as similar as possible to each other, while the points between clusters are as different as possible. This algorithm is favored for its simplicity and efficiency, especially for processing large-scale data sets. The algorithm's processing flow is as follows: First, we need to select K initial centers. We randomly select K data points as the initial cluster centers. These centers can be randomly selected or more efficiently selected using some heuristic methods.
[0034] Then, assign the data point to the nearest cluster center. For each point in the dataset, calculate its distance from each cluster center and assign it to the cluster represented by the nearest cluster center.
[0035] Next, update the cluster centers. Once all data points have been assigned, recalculate the center of each cluster. Usually this is done by taking the mean of all the points in the cluster.
[0036] Finally, the steps of assigning data points and updating cluster centers are repeated until a stopping condition is met. Common stopping conditions include the change in cluster centers being very small (below a certain threshold), reaching a preset number of iterations, or the cluster assignments no longer changing.
[0037] For the component sequences operated by users, the PrefixSpan mining algorithm is used to mine the component sequences that users frequently operate.
[0038] PrefixSpan (Prefix Projection Sequential Pattern Growth Algorithm) is an algorithm for sequential pattern mining. Its main purpose is to efficiently discover frequent subsequences in sequence databases. Compared with traditional algorithms, PrefixSpan reduces the number of candidate sequences generated, thereby improving efficiency. The main steps of the PrefixSpan algorithm are as follows: First, scan the database for frequent items. The entire sequence database is scanned to identify frequent items (sequences of single elements), which will be used as seeds for potential sequence patterns.
[0039] Then, the prefixes of the items and the corresponding projection database are constructed. For each frequent item, the algorithm constructs a prefix and then builds a projection database for each prefix, which contains the rest of all sequences containing the prefix.
[0040] Next, the projected database is mined recursively. For each projected database, the above process is repeated: frequent items are found, new prefixes are constructed, and correspondingly a deeper projected database is created. This recursive process continues until no frequent subsequences can be found.
[0041] Finally, frequent sequences are generated. The frequent items collected from each recursive step are combined to form frequent sequences, which are the final results and represent the patterns that appear repeatedly in the database.
[0042] For component images, restore the user operation scene and replay and analyze the user operations.
[0043] The local file also records the image information of the corresponding component in different states, including the component name, component global coordinates, component relative coordinates, and component hash value. The user's operation at the time can be visually replayed based on the component image and coordinates to analyze the user's operation. The playback effect is as follows: Figure 3 shown.
[0044] S4. According to the result of step S3 and in combination with user information, the users are classified and divided.
[0045] Based on the analysis in step S3, combined with the uploaded user information, such as gender and work group, the driving factors and decision-making logic behind user behavior are revealed to classify users, and then targeted marketing and service strategies can be formulated to improve user conversion rate and lifetime value.
[0046] In summary, the method used in this embodiment can realize data analysis of user behavior from multiple directions through three analysis methods on the basis of general user data collection, reveal the driving factors and decision-making logic behind user behavior, thereby realizing user segmentation and providing deep insights for product design and user experience optimization.
[0047] Example 2 like Figure 4 As shown, this embodiment is a QT user behavior portrait analysis system, which is used to implement embodiment 1. This embodiment includes: an agent module, an event collection module, a component information extraction module, a file operation module, a user module, a rule module, a label module, a division module, a visualization module and an offline module.
[0048] On the one hand, the proxy module sends signals to start and stop collecting to the event collection module; on the other hand, it receives component data and user operation data transmitted by the event collection module, and transmits the component data and user operation data to the file operation module.
[0049] Among them, the agent module adopts the singleton mode of the class Agent design. When the QT application is connected to the data acquisition tool, it only needs to introduce the agent module and initialize the instance of the class Agent in the entry function of the application (usually the main() function in the main.cpp file) to start the data acquisition task. The agent module includes the constructor Agent(), the receiving method onAppAboutToQuit() of the application exit signal, and the receiving method onUserEvent() of the event data signal. The constructor Agent() is used to start the acquisition task, and sends a start acquisition signal to the event acquisition module by recording the application startup event; the receiving method onAppAboutToQuit() of the application exit signal is used to send a closing acquisition signal to the event acquisition module when the application exits; the receiving method onUserEvent() of the event data signal is responsible for receiving the component data and user operation data transmitted by the event acquisition module and forwarding it to the file operation module.
[0050] In order to ensure that only one data collection task is started at a time, the agent module adopts the singleton model of the Agent class design. When the Agent construction method is called, an assertion is used to determine whether the current global Agent instance is empty. If there is a non-empty Agent instance, the assertion fails, the program alarms and exits.
[0051] On the one hand, the event collection module receives and responds to the signals for starting and closing collection transmitted by the proxy module, collects user operation data and component information, and transmits the component information to the component information extraction module; on the other hand, it receives the component data transmitted by the component information extraction module, and transmits the component data and user operation data to the proxy module.
[0052] The component information extraction module receives the component information transmitted by the event collection module, extracts the component information to generate component data, and transmits the component data back to the event collection module.
[0053] The file operation module receives the component data and user operation data transmitted by the proxy module, and stores the component data and user operation data in a local file.
[0054] The label module is used to extract user operation records from local files, perform statistical analysis, and then use the K-Means clustering algorithm to cluster user operation habits, and transmit the clustering results to the segmentation module.
[0055] The rule module is used to extract the component sequence of user operations from local files, use the PrefixSpan mining algorithm to mine the component sequence of user frequent operations, and transmit the mining results to the partitioning module.
[0056] The offline module is connected to the rule module and the label module respectively, and is used to receive the K-Means clustering algorithm whose running time in the label module exceeds the set value or the PrefixSpan mining algorithm whose running time in the rule module exceeds the set value, and return the calculation result to the corresponding module after the calculation is completed.
[0057] The visualization module is used to extract component images from local files, restore the user operation scene, replay and analyze the user operation, and transmit the replay analysis results to the partitioning module.
[0058] The user module is used to upload user information and transmit the user information to the partition module.
[0059] The classification module receives the clustering results transmitted by the label module, the mining results transmitted by the rule module, the playback analysis results transmitted by the visualization module and the user information transmitted by the user module, and classifies and divides the users.
[0060] Example 3 The present embodiment is a terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it is used to implement a QT user behavior portrait analysis method of embodiment 1.
[0061] Example 4 This embodiment is a computer-readable storage medium. The computer-readable storage medium in this embodiment stores a computer program. When the computer program is executed by a processor, it is used to implement a QT user behavior portrait analysis method of embodiment 1.
[0062] Among them, the computer-readable storage medium can be a computer storage medium or a communication medium. The communication medium includes any medium that facilitates the transmission of a computer program from one place to another. The computer storage medium can be any available medium that can be accessed by a general-purpose or special-purpose computer. For example, a computer-readable storage medium is coupled to a processor so that the processor can read information from the computer-readable storage medium and write information to the computer-readable storage medium. Of course, the computer-readable storage medium can also be a component of the processor. The processor and the computer-readable storage medium can be located in an application-specific integrated circuit (ASIC). In addition, the ASIC can be located in a user device. Of course, the processor and the computer-readable storage medium can also exist in a communication device as discrete components. Specifically, the computer-readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as a static random access memory (SRAM), an electrically erasable programmable read-only memory (EEPROM), an erasable programmable read-only memory (EPROM), a programmable read-only memory (PROM), a read-only memory (ROM), a magnetic memory, a flash memory, a magnetic disk or an optical disk, etc. The storage medium can be any available medium that can be accessed by a general-purpose or special-purpose computer.
Claims
1. A QT user behavior profile analysis method, characterized in that: The process includes the following steps: S1. During the use of the application, data collection is performed on user operations and corresponding components used by the application to generate user operation data and component information; S2. Extract component information from component information to generate component data, and store the component data and user operation data in a local file; S3, extracting user operation records, component sequences and component images of user operations from local files; Among them, after statistical analysis of user operation records, clustering algorithms are used to cluster user operation habits; mining algorithms are used to mine component sequences that users frequently operate; component images are processed to restore the user operation scene and replay and analyze user operations; S4. According to the result of step S3 and in combination with user information, the users are classified and divided.
2. A QT user behavior profile analysis method according to claim 1, characterized in that: The user operation data in step S1 includes: event type, event time, mouse click, mouse movement, mouse wheel, keyboard click, and shortcut keys; Component information includes: component name, component type and component additional information.
3. A QT user behavior profile analysis method according to claim 1, characterized in that: In step S3, the clustering algorithm used is the K-Means algorithm; the mining algorithm used is the PrefixSpan algorithm.
4. A QT user behavior profile analysis system, used to implement a QT user behavior profile analysis method according to any one of claims 1 to 3, characterized in that: include: Agent module, event collection module, component information extraction module, file operation module, user module, rule module, label module, partition module and visualization module; On the one hand, the proxy module sends signals to the event collection module to start and stop collection; on the other hand, it receives component data and user operation data transmitted by the event collection module, and transmits the component data and user operation data to the file operation module; The event collection module receives and responds to the start and end collection signals transmitted by the proxy module, collects user operation data and component information, and transmits the component information to the component information extraction module; on the other hand, it receives the component data transmitted by the component information extraction module, and transmits the component data and user operation data to the proxy module; The component information extraction module receives the component information transmitted by the event collection module, extracts the component information to generate component data, and transmits the component data back to the event collection module; The file operation module receives the component data and user operation data transmitted by the proxy module, and stores the component data and user operation data in a local file; The tag module is used to extract user operation records from local files, perform statistical analysis, cluster user operation habits using the K-Means clustering algorithm, and transmit the clustering results to the segmentation module; The rule module is used to extract the component sequence of user operations from local files, use the PrefixSpan mining algorithm to mine the component sequence of user frequent operations, and transmit the mining results to the partitioning module; The visualization module is used to extract component images from local files, restore the user operation scene, replay and analyze the user operation, and transmit the replay analysis results to the partitioning module; The user module is used to upload user information and transmit the user information to the partition module; The classification module receives the clustering results transmitted by the label module, the mining results transmitted by the rule module, the playback analysis results transmitted by the visualization module and the user information transmitted by the user module, and classifies and divides the users.
5. A QT user behavior profile analysis system according to claim 4, characterized in that: The agent module adopts the singleton mode class Agent design, including the construction method Agent(), the application exit signal receiving method onAppAboutToQuit() and the event data signal receiving method onUserEvent(); The constructor Agent() is used to start the collection task and send a start collection signal to the event collection module; The application exit signal receiving method onAppAboutToQuit() is used to send a closing collection signal to the event collection module when the application exits; The event data signal receiving method onUserEvent() is responsible for receiving the component data and user operation data transmitted by the event acquisition module and forwarding them to the file operation module.
6. A QT user behavior profile analysis system according to claim 4, characterized in that: The event collection module realizes data collection by installing an event filter object in an application object.
7. A QT user behavior profile analysis system according to claim 4, characterized in that: The system is also provided with an offline module connected to the rule module and the label module respectively; The offline module is used to receive the K-Means clustering algorithm whose running time in the label module exceeds the set value or the PrefixSpan mining algorithm whose running time in the rule module exceeds the set value, and return the calculation result to the corresponding module after the calculation is completed.
8. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, a QT user behavior portrait analysis method as described in any one of claims 1 to 3 is implemented.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, which, when executed by a processor, is used to implement a QT user behavior portrait analysis method as described in any one of claims 1 to 3.
Citation Information
Patent Citations
Automatic operation behavior analysis system and method in railway transportation scheduling process
CN110110983A
Page portrait data processing method and device, computer equipment and storage medium
CN110659188A
User portrait and multi-dimensional analysis system based on big data
CN111475509A
Measurement method based on DevOps research and development and operation integration
CN111581104A
Graphical programming platform resource recommendation method and device
CN113961814A