A Recommendation Method, Device, Equipment and Medium for a Project Reuse Solution
By determining the search tags in the project to be created and comparing them with developed projects, selecting target projects with similar architectural requirements, and using reuse information to determine recommended projects, the problem of low R&D efficiency caused by the large number and complex types of developed projects is solved, and the reusability and cost reduction of project reuse is achieved.
Patent Information
- Application Number
- CN202211104843.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-09
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2042-09-09
AI Technical Summary
In the existing technology, the number of developed projects is huge and complex in types. Relying on R&D personnel's memory and experience to find project solutions that can be reused, resulting in some reused solutions not being discovered, reducing R&D efficiency.
Determine the search tags through the architectural requirements of the project to be created, compare the search tags with the project tags of the developed projects, filter out the target projects with similar architectural requirements, and use the multiplexed information such as update status and number of references to determine the recommended project.
Improve the reusability of project reuse and reduce R&D costs.
Smart Images

Figure CN115586889B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the technical field of data analysis, and in particular, to a method, device, equipment, and medium for recommending a project reuse solution. Background Art
[0002] When there is a project to be created in a business system, the architectural requirements of the project to be created will be analyzed in advance. The huge project to be created will be divided into multiple projects in ways such as system, service, component, or functional module, and then each of the divided projects will be designed and developed.
[0003] Different software projects may have similar development solutions, which makes it possible to save the engineering difficulty and operation time of the project to be created by referring to or reusing the developed projects. However, the number of developed projects is huge and the types are complex. Currently, it mostly relies on the memory and experience of R & D personnel to find reusable projects from the developed projects, resulting in some reusable solutions not being discovered, increasing duplicate investment, and thus reducing the R & D efficiency. Summary of the Invention
[0004] The embodiments of the present application provide a method, device, equipment, and medium for recommending a project reuse solution, which are used to select recommended projects that can be referred to or reused by new projects from the developed projects, improve the reusability of the solution, and reduce the R & D cost.
[0005] To achieve the above object, the technical solution of the embodiments of the present application is implemented as follows:
[0006] In a first aspect, the embodiments of the present application provide a method for recommending a project reuse solution, and the method includes:
[0007] Determine the search tags of the project to be created according to the architectural requirements of the project to be created;
[0008] Based on the search tags, compare the project tags of each project to be searched, and determine target projects with similar architectural requirements to the project to be created from each project to be searched; wherein, each project to be searched is a developed project, and the project tags are determined according to the architectural requirements of the developed project;
[0009] Based on the comparison result and the reuse information of each target project, determine recommended projects for the project to be created to reuse; wherein, the reuse information is update information representing the update status of the target project and the citation times of the target project.
[0010] In some possible embodiments, before comparing the project tags of each project to be searched based on the search tags, the method further includes:
[0011] Obtain the name search vector of the to-be-created project; wherein, the name search vector is determined according to the project name of the to-be-created project and the synonym names of the project name, and the synonym names are determined based on a preset synonym set;
[0012] Compare the similarity between the name search vector and the project names of each developed project, and use the developed projects with similarity greater than the similarity threshold as the to-be-searched projects.
[0013] In some possible embodiments, the search tags include a first tag and a second tag; wherein, the first tag includes some or all of the development language, concurrency threshold, and data consistency of the to-be-created project; the second tag includes at least one keyword characterizing the functional requirements of the to-be-created project.
[0014] In some possible embodiments, the determining, according to the comparison result, a target project with similar architecture requirements to the to-be-created project from each of the to-be-searched projects includes:
[0015] Select candidate projects from each of the to-be-searched projects whose project tags contain the tag content of the first tag;
[0016] Determine the number of tags in the project tags of each candidate project that contain the second tag, and determine the target project from each candidate project based on the number of tags.
[0017] In some possible embodiments, the determining the target project from each candidate project based on the number of tags includes:
[0018] Determine the semantic similarity between the architecture requirements of the to-be-created project and the architecture requirements of each candidate project;
[0019] Determine the target project from each candidate project according to the number of tags corresponding to each candidate project and the semantic similarity.
[0020] In some possible embodiments, the determining recommended projects for the to-be-created project to reuse based on the comparison result and the reuse information of each target project includes:
[0021] For each target project, determine the reference features of the target project according to the number of tags corresponding to the target project, the semantic similarity, and the reuse information;
[0022] Determine the score of each target project according to the weights corresponding to each reference feature, and determine the recommended project from each target project according to the scores of each target project; wherein, the weights of the reference features are determined according to a multiple linear regression model.
[0023] In some possible embodiments, the update information at least includes the creation time, the latest update time, and the update frequency of the target project.
[0024] A method for recommending a project reuse solution provided by an embodiment of the present application can determine a search tag for the project to be created according to the architecture requirements of the project to be created; compare the project tags of each project to be searched based on the search tag, and determine a target project with similar architecture requirements to the project to be created from each project to be searched according to the comparison result; wherein, each project to be searched is a developed project, and the project tag is determined according to the architecture requirements of the developed project; determine a recommended project for reuse by the project to be created based on the comparison result and the reuse information of each target project; wherein, the reuse information is update information representing the update status of the target project and the number of references of the target project. This method determines the corresponding search tag through the architecture requirements of the project to be created, and then compares the search tag with the project tags of each developed project, and filters out the target projects with similar architecture requirements to the project to be created. Each target project has reuse information, which is update information representing the update status of the target project and the number of references. After determining the comparison result between the project tag and the search tag, each target project is filtered according to two dimensions of the comparison result of the tags and the reuse information, and a recommended project that can be reused by the project to be created is determined therefrom, so as to improve the reusability of the recommended project and reduce the R & D cost.
[0025] In a second aspect, an embodiment of the present application provides a device for recommending a project reuse solution, and the device includes:
[0026] A tag acquisition module, configured to execute determining a search tag for the project to be created according to the architecture requirements of the project to be created;
[0027] A tag comparison module, configured to execute comparing the project tags of each project to be searched based on the search tag, and determining a target project with similar architecture requirements to the project to be created from each project to be searched according to the comparison result; wherein, each project to be searched is a developed project, and the project tag is determined according to the architecture requirements of the developed project;
[0028] A project recommendation module, configured to execute determining a recommended project for reuse by the project to be created based on the comparison result and the reuse information of each target project; wherein, the reuse information is update information representing the update status of the target project and the number of references of the target project.
[0029] In some possible embodiments, before executing the comparing the project tags of each project to be searched based on the search tag, the tag acquisition module is further configured to:
[0030] Obtain the name search vector of the to-be-created project; wherein, the name search vector is determined according to the project name of the to-be-created project and the synonymous name of the project name, and the synonymous name is determined based on a preset set of synonyms.
[0031] Compare the name search vector with the project names of each developed project, and use the developed projects with a similarity greater than the similarity threshold as the to-be-searched projects.
[0032] In some possible embodiments, the search tags include a first tag and a second tag; wherein, the first tag includes some or all of the development language, concurrency threshold, and data consistency of the to-be-created project; the second tag includes at least one keyword characterizing the functional requirements of the to-be-created project.
[0033] In some possible embodiments, perform determining, according to the comparison result, a target project from each of the to-be-searched projects that has similar architecture requirements to the to-be-created project, and the tag comparison module is configured to:
[0034] Select candidate projects from each of the to-be-searched projects whose project tags contain the tag content of the first tag.
[0035] Determine the number of tags in the project tags of each candidate project that contain the second tag, and determine the target project from each candidate project based on the number of tags.
[0036] In some possible embodiments, perform determining the target project from each of the candidate projects based on the number of tags, and the tag comparison module is configured to:
[0037] Determine the semantic similarity between the architecture requirements of the to-be-created project and the architecture requirements of each candidate project.
[0038] Determine the target project from each candidate project according to the number of tags corresponding to each candidate project and the semantic similarity.
[0039] In some possible embodiments, perform determining recommended projects for the to-be-created project to reuse based on the comparison result and the reuse information of each target project, and the project recommendation module is configured to:
[0040] [[ID=3*]]For each target project, determine the reference features of the target project according to the number of tags corresponding to the target project, the semantic similarity, and the reuse information.
[0041] Determine the score of the target item according to the weights corresponding to the respective reference features, and determine the recommended item from the respective target items according to the scores of the respective target items; wherein, the weights of the reference features are determined according to a multiple linear regression model.
[0042] In some possible embodiments, the update information at least includes the creation time, the latest update time, and the update frequency of the target item.
[0043] In a third aspect, an embodiment of the present application further provides an electronic device, including a memory and a processor, where a computer program executable on the processor is stored on the memory. When the computer program is executed by the processor, the processor implements the business system upgrade method in the first aspect.
[0044] In a fourth aspect, an embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the business system upgrade method in the first aspect is implemented.
[0045] In a fifth aspect, an embodiment of the present application provides a computer program product, which includes computer instructions stored in a computer-readable storage medium; when a processor of a computer device reads the computer instructions from the computer-readable storage medium, the processor executes the computer instructions, so that the computer device executes the steps of any one of the above business system upgrade methods. Description of the Drawings
[0046] Figure 1 It is a schematic diagram of the reuse relationship between projects provided by an embodiment of the present application;
[0047] Figure 2 It is a schematic diagram of an application scenario provided by an embodiment of the present application;
[0048] Figure 3 It is an overall flowchart of a method for recommending a project reuse scheme provided by an embodiment of the present application;
[0049] Figure 4 It is a schematic diagram of a business data set provided by an embodiment of the present application;
[0050] Figure 5 It is a schematic diagram of label comparison provided by an embodiment of the present application;
[0051] Figure 6 It is a structural diagram of a device for recommending a project reuse scheme provided by an embodiment of the present application;
[0052] Figure 7 It is a structural diagram of an electronic device provided by an embodiment of the present application. Detailed implementation manners
[0053] To make the objectives, technical solutions and advantages of the present application clearer and more understandable, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present application without making creative efforts shall fall within the protection scope of the present application. Without conflict, the embodiments in the present application and the features in the embodiments may be arbitrarily combined with each other. And although the logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than here.
[0054] In the description and claims of the present application and the above-mentioned accompanying drawings, the terms "first" and "second" are used to distinguish different objects, rather than to describe a specific order. In addition, the term "comprising" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but optionally further includes steps or units not listed, or optionally further includes other steps or units inherent to these processes, methods, products or devices. "Multiple" in the present application may mean at least two, for example, it may be two, three or more, and the embodiments of the present application do not make limitations.
[0055] In the technical solution of the present application, the collection, dissemination, use, etc. of data all comply with the requirements of relevant national laws and regulations.
[0056] Before introducing a method for recommending a project reuse solution provided by the embodiments of the present application, for the convenience of understanding, first, the technical background of the embodiments of the present application will be introduced in detail below.
[0057] In practical applications, different software projects may have similar development solutions, which makes it possible to save the engineering difficulty and operation time of new projects by referring to or reusing the developed projects. For example, when preparing to create an order management system, through requirements analysis, the order management system can be split into modules such as Figure 1 shown in order creation, order tracking, order cancellation, order payment, and order confirmation. Each module can be regarded as a new project to be created during the R & D stage. Another example is Figure 1As shown, since different software projects may have similar development solutions, for example, the architecture requirements of the book tracking module in the developed book borrowing system are highly similar to those of the above-mentioned order tracking module. By making simple logical modifications to the book tracking module, such as interfaces and fields, the relevant requirements for order tracking can be achieved. This shows that the order tracking function of the order management system can be quickly realized by referring to or reusing the developed book tracking module.
[0058] However, the number of developed projects is large and the types are complex. Currently, it mostly relies on the memory and experience of R & D personnel to find reusable projects from the developed projects. This manual search method is likely to cause some reusable solutions to not be discovered in time, thereby reducing the R & D efficiency.
[0059] To solve the above problems, the inventive concept of the embodiments of the present application is as follows: Determine the corresponding search tags based on the architecture requirements of the project to be created, and then compare the search tags with the project tags of each developed project to screen out the target projects with similar architecture requirements to the project to be created. Each target project has reuse information, which is update information representing the update status of the target project and the number of references. After determining the comparison result between the project tag and the search tag, screen each target project from two dimensions of the tag comparison result and the reuse information to determine the recommended projects that can be reused by the project to be created, so as to improve the reusability of the recommended projects and reduce the R & D cost.
[0060] See Figure 2 , which is a schematic diagram of an application scenario according to an embodiment of the present application.
[0061] As Figure 2 shown, this application scenario may include, for example, a network 10, terminal devices 20_N, a server 30, and a database 40: Among them, the terminal devices 20_N can be Figure 2 intelligent devices with networking functions such as the smart phone 20_1, smart computer 20_2, and laptop 20_n shown in
[0062] In Figure 2 the shown application scenario, the user needs to find a reuse solution for the new project currently waiting to be created from the developed historical projects. During implementation, the user can send the architecture requirements of the new project to the server 30 through the terminal device 20_N. After receiving the architecture requirements, the server 30 determines the search tags of the new project from the architecture requirements through semantic recognition, word segmentation processing, etc. Then, compare the search tags with the project tags of the historical projects stored in the database 40 to select a reuse solution that can be referred to or reused by the new project.
[0063] In some possible embodiments, project tags of historical projects are stored in the database 40, and each project tag is determined according to the architecture requirements of the historical projects.
[0064] It should be noted that in the description of this application, only a single server is described in detail. However, those skilled in the art should understand that Figure 2 the shown server 40 is intended to represent the operations of the servers involved in the technical solution of this application. Describing a single server in detail is at least for convenience of explanation, rather than implying any limitations on the number, type, or location of the servers. It should be noted that if additional modules are added to or individual modules are removed from the illustrated environment, the underlying concept of the exemplary embodiments of this application will not be changed.
[0065] After introducing the application scenarios of the embodiments of this application, a method for recommending a project reuse solution provided by the embodiments of this application will be described below. For details, see Figure 3 , including:
[0066] Step 301: Determine the search tag of the to-be-created project according to the architecture requirements of the to-be-created project;
[0067] The above architecture requirements are the architecture requirements such as the development language and data consistency of the to-be-created project, as well as the system description of the functions of the to-be-created project. The project must be strictly executed in accordance with the architecture requirements during the development stage. For example, in the architecture requirements of the order creation project shown above Figure 1 , the development language is restricted to Java, the data consistency is distributed consistency, and the system description requires that the project can generate a corresponding order number after the user places an order, and determine relevant functions such as the preferential information and user account rights and interests information involved in the ordered goods according to the order number.
[0068] When performing the above step 301, the search tag of the to-be-created project can be obtained from the above architecture requirements through a word segmentation extraction algorithm. Before introducing the search tag of the embodiments of this application, the project tag of the embodiments of this application will be described first.
[0069] The project tags in the embodiments of this application are determined according to the architecture requirements of the developed projects. During implementation, based on the architecture requirements of a large number of developed projects, lexical analysis tools (Lexical Analysis of Chinese, LAC) can be used for word segmentation processing, and the Aho-Corasick automaton can be used to extract four items of data, namely the development language, concurrency threshold, data consistency, and keywords, from them, and the project tags of the developed projects are determined according to these four items of data. Specifically, the project tags can be defined as Figure 4The business data set shown above contains the four items of the above-mentioned development language, concurrency threshold, data consistency, and keywords. Among them, the development language can include common development languages such as Go, Python, HTML, Java, C / C++. The concurrency threshold is the specific value required for the concurrency of the to-be-created project, which is an integer (int). The data consistency includes consistency requirements such as transactional consistency, distributed consistency, and sequential consistency. The keywords in the second tag, such as the keywords in the above-mentioned order creation module, can be words such as "order", "creation", "rights and interests", etc. The keywords are related to the function implementation of the developed project. For example, the words "order", "creation", "rights and interests", etc. in the above-mentioned order creation module.
[0070] The extraction process of the search tag is the same as that of the above-mentioned project tag. The embodiment of the present application intends to compare the search tag with each project tag, so as to screen out the target project whose architecture requirements are similar to those of the to-be-created project according to the comparison result. Based on this, the embodiment of the present application divides the search tag into two categories: the first tag and the second tag. The first tag includes some or all of the development language, concurrency threshold, and data consistency of the to-be-created project; the second tag includes at least one keyword characterizing the functional requirements of the to-be-created project. In the tag comparison stage, it is required that the target project needs to contain all the first tags of the to-be-created project and a specified number of second tags, so as to improve the reusability of the target project.
[0071] Step 302: Compare the project tags of each to-be-searched project based on the search tag, and determine the target project with similar architecture requirements to the to-be-created project from each to-be-searched project; wherein, each to-be-searched project is a developed project, and the project tag is determined according to the architecture requirements of the developed project;
[0072] In the tag comparison stage of the embodiment of the present application, it is required that the target project needs to contain all the first tags of the to-be-created project and a specified number of second tags, so as to improve the reusability of the target project. Based on this, the candidate projects whose project tags contain the tag content of the first tag can be selected from each to-be-searched project, and then the number of tags containing the second tag in the project tags of each candidate project is determined. Finally, the target project is determined from each candidate project based on the number of tags.
[0073] For example Figure 5As shown in the figure, the first label of the project to be created is the development language Java, the concurrency threshold is null, that is, there is no specific requirement for the concurrency threshold in the architecture requirements, and the data consistency is distributed consistency. The second labels are "order", "creation", and "rights and interests". Among the projects 1-100 to be searched, the projects with the development language Java and data consistency of distributed consistency are 1-20. Here, the projects 1-20 are the projects to be selected. Further, after determining the projects to be selected, the semantic similarity between the architecture requirements of the project to be created and the architecture requirements of each project to be selected is determined through a semantic recognition algorithm. Since the second label is extracted from the system description, the system description in the architecture requirements can be directly used for calculating the semantic similarity, and then the target project is determined from each project to be selected according to the number of labels corresponding to each project to be selected and the semantic similarity. Specifically, it can be set that the projects to be searched that contain at least one second label and the semantic similarity > 70% are used as the projects to be selected.
[0074] In the above process, the embodiments of the present application screen the projects to be searched through three aspects: the matching of the first label, the second label, and the system description, and select the target project whose architecture requirements have a similar relationship with the project to be created, so as to improve the reusability of the screening result for the project to be created.
[0075] In some possible embodiments, before comparing the project labels of each project to be searched based on the search label, a name search vector of the project to be created is obtained; wherein, the name search vector is determined according to the project name of the project to be created and the synonym names of the project name, and the synonym names are determined based on a preset synonym set; the name search vector is compared with the project names of each developed project, and the developed projects with a similarity greater than the similarity threshold are used as the projects to be searched.
[0076] In implementation, the project name of the project to be created can be determined according to the architecture requirements of the project to be created, and then the project name is normalized by converting the project name through a preset synonym table to obtain its name search vector. For example, the name search vector corresponding to the project name "iphone" is "Apple iphone". Then, similarity matching is performed according to the search name vector and the name vectors of each developed project, and the project to be searched vectors that meet the similarity threshold are selected from them. The above process can perform a round of pre-screening of the developed projects through the project name before searching for the target project, so as to improve the reusability of the target project.
[0077] Step 303: Determine a recommended project for the project to be created to reuse based on the comparison result and the reuse information of each target project; wherein, the reuse information is update information representing the update status of the target project and the reference times of the target project.
[0078] After determining the target project through the above process, the embodiment of the present application determines the reference features of the target project according to the number of tags, semantic similarity, and reuse information corresponding to the target project. Then, the reference features of each target project are input into a multiple linear regression model for calculation to determine the score of the target project according to the weights corresponding to each reference feature, and the recommended projects are determined from each target project according to the scores of each target project.
[0079] In the embodiment of the present application, the reuse information of the target project includes update information and the number of citations. The update information at least includes the creation time, the latest update time, and the update frequency of the target project. The number of citations indicates how many times the target project has been used as a recommended project. Specifically, the above multiple linear regression model is trained through a large amount of matching data to construct the influence of the reference features of each target project on the final matching result, that is, the model weights corresponding to each reference feature are obtained after convergence. In this way, after inputting the reference features of each target project into the multiple linear regression model, the total score of the target project can be obtained according to the weights corresponding to each reference feature. Finally, each target project is sorted in descending order according to the score, and the target projects with the preset number (such as the top three) before sorting are used as recommended projects to be displayed to the user for the user to select the reuse scheme of the project to be created from them.
[0080] To apply to more application scenarios, the embodiment of the present application can also complete the above process based on a search engine such as Elasticsearch. During implementation, the project tags (i.e., the above-mentioned development language, concurrency threshold, data consistency, and keywords), system description, and storage address of each developed project can be written into Elasticsearch to build an index. And a field representing the reuse information of the developed project (i.e., the above-mentioned creation time, the latest update time, the update frequency, and the number of citations) is added to each record, so that the record in Elasticsearch will be updated synchronously when the developed project is updated.
[0081] When there is a project to be created, the name search vector of the project to be created can be obtained based on a preset synonym table, and the search tags of the project to be created can be obtained through the above-mentioned lexical analysis tool LAC and AC automaton. Then, the search tags of the project to be created and the name search vector of the project to be created are used as search terms to search each developed project, and then the target projects that meet the requirements in terms of both project name and project tags are screened out. Then, the reference features of the target projects are input into the multiple linear regression model to obtain the scores of each target project. Finally, the recommended projects to be displayed to the user are screened out according to the scores of each target project for the user to select the reuse scheme of the project to be created from them.
[0082] The above process determines the corresponding search tags based on the architectural requirements of the project to be created, and then compares the search tags with the project tags of each developed project to screen out the target projects with similar architectural requirements to the project to be created. Each target project has reuse information, which is the update information representing the update status of the target project and the citation count. Further, after determining the comparison result between the project tag and the search tag, the target projects are screened based on two dimensions: the comparison result of the tags and the reuse information, and the recommended projects that can be reused by the project to be created are determined therefrom, so as to improve the reusability of the recommended projects and reduce the R & D cost.
[0083] Based on the same inventive concept, an embodiment of the present application provides a recommendation device 600 for a project reuse scheme, specifically as Figure 6 shown, including:
[0084] A tag acquisition module 601, configured to execute determining the search tags of the project to be created according to the architectural requirements of the project to be created;
[0085] A tag comparison module 602, configured to execute comparing the project tags of each project to be searched based on the search tags, and determining target projects with similar architectural requirements to the project to be created from each of the projects to be searched; wherein, each of the projects to be searched is a developed project, and the project tag is determined according to the architectural requirements of the developed project;
[0086] A project recommendation module 603, configured to execute determining recommended projects for the project to be created to reuse based on the comparison result and the reuse information of each of the target projects; wherein, the reuse information is the update information representing the update status of the target project and the citation count of the target project.
[0087] In some possible embodiments, before executing the comparing the project tags of each project to be searched based on the search tags, the tag acquisition module 601 is further configured to:
[0088] Obtain the name search vector of the project to be created; wherein, the name search vector is determined according to the project name of the project to be created and the synonym names of the project name, and the synonym names are determined based on a preset synonym set;
[0089] Compare the similarity between the name search vector and the project names of each developed project, and use the developed projects with a similarity greater than the similarity threshold as the projects to be searched.
[0090] In some possible embodiments, the search tags include a first tag and a second tag; wherein, the first tag includes some or all of the development language, concurrency threshold, and data consistency of the item to be created; the second tag includes at least one keyword characterizing the functional requirements of the item to be created.
[0091] In some possible embodiments, when performing the determination of the target item having similar architecture requirements to the item to be created from each of the items to be searched according to the comparison result, the tag comparison module 602 is configured to:
[0092] Select candidate items from each of the items to be searched whose item tags contain the tag content of the first tag;
[0093] Determine the number of tags in the item tags of each candidate item that contain the second tag, and determine the target item from each candidate item based on the number of tags.
[0094] In some possible embodiments, when performing the determination of the target item from each of the candidate items based on the number of tags, the tag comparison module 602 is configured to:
[0095] Determine the semantic similarity between the architecture requirements of the item to be created and the architecture requirements of each candidate item;
[0096] Determine the target item from each candidate item according to the number of tags corresponding to each candidate item and the semantic similarity.
[0097] In some possible embodiments, when performing the determination of the recommended item for reuse by the item to be created based on the comparison result and the reuse information of each target item, the item recommendation module 603 is configured to:
[0098] For each target item, determine the reference features of the target item according to the number of tags corresponding to the target item, the semantic similarity, and the reuse information;
[0099] Determine the score of each target item according to the weights corresponding to each reference feature, and determine the recommended item from each target item according to the scores of each target item; wherein, the weights of the reference features are determined according to a multiple linear regression model.
[0100] In some possible embodiments, the update information at least includes the creation time, the latest update time, and the update frequency of the target item.
[0101] Next, refer to Figure 7 to describe the electronic device 130 according to this embodiment of the present application. Figure 7The displayed electronic device 130 is merely an example and should not impose any limitations on the functions and scope of use of the embodiments of this application.
[0102] As Figure 7 shown, the electronic device 130 is presented in the form of a general-purpose electronic device. The components of the electronic device 130 may include, but are not limited to: at least one of the above-mentioned processors 131, at least one of the above-mentioned memories 132, and a bus 133 that connects different system components (including the memory 132 and the processor 131).
[0103] The bus 133 represents one or more of several types of bus structures, including a memory bus or a memory controller, a peripheral bus, a processor, or a local area bus using any bus structure in a variety of bus structures.
[0104] The memory 132 may include a readable medium in the form of volatile memory, such as a random access memory (RAM) 1321 and / or a cache memory 1322, and may further include a read-only memory (ROM) 1323.
[0105] The memory 132 may also include a program / utility 1325 having a set (at least one) of program modules 1324. Such program modules 1324 include, but are not limited to: an operating system, one or more application programs, other program modules, and program data. The implementation of a network environment may be included in each or some combination of these examples.
[0106] The electronic device 130 may also communicate with one or more external devices 134 (such as a keyboard, a pointing device, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 130, and / or communicate with any device that enables the electronic device 130 to communicate with one or more other electronic devices (such as a router, a modem, etc.). Such communication may be performed through an input / output (I / O) interface 135. And, the electronic device 130 may also communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) through a network adapter 136. As shown in the figure, the network adapter 136 communicates with other modules for the electronic device 130 through the bus 133. It should be understood that although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 130, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
[0107] In an exemplary embodiment, a computer-readable storage medium including instructions is further provided, such as a memory 132 including instructions, and the above instructions can be executed by a processor 131 of the above device to complete the above method. Optionally, the computer-readable storage medium may be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.
[0108] In an exemplary embodiment, a computer program product is further provided, including a computer program / instructions, and when the computer program / instructions are executed by a processor 131, any method in the recommended method for a project reuse scheme provided in this application is implemented.
[0109] In an exemplary embodiment, various aspects of the recommended method for a project reuse scheme provided in this application can also be implemented in the form of a program product, which includes program code. When the program product runs on a computer device, the program code is used to cause the computer device to execute the steps in the recommended method for a project reuse scheme according to various exemplary embodiments described above in this specification.
[0110] The program product can adopt any combination of one or more readable media. The readable media can be a readable signal medium or a readable storage medium. The readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples (non-exhaustive list) of the readable storage medium include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0111] The program product for the recommendation of the project reuse scheme in the embodiments of this application can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can run on an electronic device. However, the program product of this application is not limited to this. In this document, the readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or in combination with an instruction execution system, apparatus, or device.
[0112] A readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, in which readable program code is carried. Such propagated data signals can take many forms, including - but not limited to - electromagnetic signals, optical signals, or any suitable combination of the above. The readable signal medium can also be any readable medium other than a readable storage medium, which can send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0113] The program code contained on the readable medium can be transmitted using any appropriate medium, including - but not limited to - wireless, wired, optical fiber cable, RF, etc., or any suitable combination of the above.
[0114] The program code for performing the operations of the present application can be written in any combination of one or more programming languages. The programming languages include object-oriented programming languages - such as Java, C++, etc., and also include conventional procedural programming languages - such as C or similar programming languages. The program code can be executed entirely on the user's electronic device, partially on the user's device, executed as a stand-alone software package, partially on the user's electronic device and partially on a remote electronic device, or entirely on a remote electronic device or server. In the case of a remote electronic device, the remote electronic device can be connected to the user's electronic device through any type of network - including a local area network (LAN) or a wide area network (WAN) - or, alternatively, can be connected to an external electronic device (e.g., by connecting through the Internet using an Internet service provider).
[0115] It should be noted that although several units or subunits of the apparatus are mentioned in the above detailed description, this division is merely exemplary and not mandatory. In fact, according to the embodiments of the present application, the features and functions of the two or more units described above can be embodied in one unit. Conversely, the features and functions of one unit described above can be further divided and embodied by multiple units.
[0116] In addition, although the operations of the method of the present application are described in a specific order in the drawings, this does not require or imply that these operations must be performed in that specific order, or that all the operations shown must be performed to achieve the desired result. Additionally or alternatively, some steps can be omitted, multiple steps can be combined into one step for execution, and / or one step can be decomposed into multiple steps for execution.
[0117] Those skilled in the art will understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.
[0118] The present application is described with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to the embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, as well as the combination of flows and / or blocks in the flowchart and / or block diagram, can be realized by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable image scaling devices to generate a machine, so that the instructions executed by the processor of the computer or other programmable image scaling devices generate means for realizing the functions specified in one Figure 1 flow or multiple flows and / or blocks Figure 1 or multiple blocks.
[0119] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable image scaling devices to work in a specific manner, so that the instructions stored in the computer-readable memory generate a manufactured article including instruction means, and the instruction means realizes the functions specified in one Figure 1 flow or multiple flows and / or blocks Figure 1 or multiple blocks.
[0120] These computer program instructions can also be loaded onto a computer or other programmable image scaling devices, so that a series of operation steps are executed on the computer or other programmable devices to generate a computer-implemented process. Thus, the instructions executed on the computer or other programmable devices provide steps for realizing the functions specified in one Figure 1 flow or multiple flows and / or blocks Figure 1 or multiple blocks.
[0121] Although the preferred embodiments of the present application have been described, those skilled in the art can make additional changes and modifications to these embodiments once they learn the basic creative concepts. Therefore, the appended claims are intended to be construed to include the preferred embodiments as well as all changes and modifications that fall within the scope of the present application.
[0122] Obviously, those skilled in the art can make various changes and modifications to this application without departing from the scope of this application. Thus, if these modifications and variations of this application fall within the scope of the claims of this application and their equivalent technologies, this application is also intended to include these modifications and variations.
Claims
1. A method for recommending a project reuse solution, characterized in that, The method includes: Determining a search tag for the project to be created according to the architecture requirements of the project to be created; the search tag includes a first tag and a second tag; the first tag includes some or all of the development language, concurrency threshold, and data consistency of the project to be created; the second tag includes at least one keyword characterizing the functional requirements of the project to be created; Comparing the project tags of each project to be searched based on the search tag, and selecting candidate projects whose project tags contain the tag content of the first tag from each project to be searched; Determining the number of tags in the project tags of each candidate project that contain the second tag, and determining a target project from each candidate project based on the number of tags; wherein, each project to be searched is a developed project, and the project tag is determined according to the architecture requirements of the developed project; For each target project, determining a reference feature of the target project according to the number of tags, semantic similarity, and reuse information corresponding to the target project; the reuse information is update information characterizing the update status of the target project and the citation frequency of the target project; Determining a score of the target project according to the weights corresponding to each reference feature, and determining a recommended project from each target project according to the scores of each target project; wherein, the weights of the reference features are determined according to a multiple linear regression model.
2. The method according to claim 1, wherein Before comparing the project tags of each project to be searched based on the search tag, the method further includes: Obtaining a name search vector of the project to be created; wherein, the name search vector is determined according to the project name of the project to be created and the synonymous name of the project name, and the synonymous name is determined based on a preset set of synonyms; Comparing the name search vector with the project names of each developed project, and using the developed project with a similarity greater than the similarity threshold as the project to be searched.
3. The method according to claim 1, wherein Determining a target project from each candidate project based on the number of tags includes: Determining the semantic similarity between the architecture requirements of the project to be created and the architecture requirements of each candidate project; Determining the target project from each candidate project according to the number of tags and the semantic similarity corresponding to each candidate project.
4. The method according to any one of claims 1 to 3, characterized in that The update information at least includes the creation time, latest update time, and update frequency of the target project.
5. A recommendation device for a project reuse solution, characterized in that, The device includes: A tag acquisition module configured to execute determining a search tag for the project to be created according to the architecture requirements of the project to be created; the search tag includes a first tag and a second tag; the first tag includes some or all of the development language, concurrency threshold, and data consistency of the project to be created; the second tag includes at least one keyword characterizing the functional requirements of the project to be created; A tag comparison module configured to execute comparing the project tags of each project to be searched based on the search tag, and selecting candidate projects whose project tags contain the tag content of the first tag from each project to be searched; Determine the number of labels in the item labels of each of the to-be-selected items that contain the second label, and determine the target item from each of the to-be-selected items based on the number of labels; wherein, each of the to-be-searched items is a developed item, and the item label is determined according to the architecture requirements of the developed item; An item recommendation module, configured to execute, for each of the target items, determine the reference features of the target item according to the number of labels, semantic similarity, and reuse information corresponding to the target item; the reuse information is update information characterizing the update status of the target item and the number of references of the target item; Determine the score of the target item according to the weights corresponding to each of the reference features, and determine the recommended item from each of the target items according to the scores of each of the target items; wherein, the weight of the reference feature is determined according to a multiple linear regression model.
6. An electronic device, characterized in that, Comprising: A memory for storing program instructions; A processor for calling the program instructions stored in the memory and executing the steps included in the method according to any one of claims 1-4 according to the obtained program instructions.
7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, the computer program includes program instructions, and when the program instructions are executed by a computer, the computer is caused to execute the method according to any one of claims 1-4.
8. A computer program product, characterized in that, The computer program product includes: computer program code, and when the computer program code runs on a computer, the computer is caused to execute the method according to any one of claims 1-4 above.
Citation Information
Patent Citations
Visualization method and system for software editing micro-service
CN111104103A
Public module library calling method, system, equipment and medium
CN114661285A