A method and device for recommending developers of open source platforms based on knowledge decomposition
The text and code information of the problem list in the open source project are obtained through crawling technology, and knowledge keywords are extracted using large language models and multi-label classification technology, and a knowledge graph is built, which solves the problem of developers positioning problems in massive problem lists, realizes personalized and accurate recommendations, and improves development efficiency and community collaboration.
Patent Information
- Application Number
- CN202411749862.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-02
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2044-12-02
AI Technical Summary
In the open source software ecosystem, it is difficult for developers to quickly locate problems that they can solve or are interested in in a massive number of problem lists. Traditional recommendation systems ignore the knowledge structure behind the problem list and the skills matching of developers.
The problem list text and code information in open source projects are obtained through crawling technology, the first knowledge keyword is extracted using large language models and natural language processing technology, and the second knowledge keyword is extracted from the code using multi-label classification technology, and these keywords are constructed into a knowledge graph to generate personalized recommendation results from the developer.
It realizes personalized and accurate recommendations from developers, improves the efficiency of problem solving, enhances the collaboration and innovation of the open source community, helps accelerate project progress and improves the overall development quality.
Smart Images

Figure CN119248933B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the fields of open source and artificial intelligence, and in particular to a method and device for recommending developers of an open source platform based on knowledge decomposition. Background Art
[0002] In the open source software ecosystem, the issue tracking system is a bridge of communication between developers and users. It records the problems, requirements and discussions in the project. With the continuous growth of open source projects, the number of issues is also increasing dramatically, which brings challenges to developers: how to quickly locate the problems that they can solve or are interested in among the massive number of issues. Traditional recommendation systems usually recommend issues based on users' historical behavior data through collaborative filtering, content recommendation and other methods. Although these methods can improve the relevance of recommendations to a certain extent, they often ignore the knowledge structure behind the issue and the skill matching of developers. Therefore, a personalized recommendation method is needed to analyze the text and code of the issue to obtain refined knowledge and technology keywords as an accurate representation of the issue, so as to achieve personalized and accurate recommendations for developers.
[0003] In open source software development, the key to text processing is to extract meaningful keywords and topics to help developers quickly locate relevant issues. In recent years, the application of large language models has greatly improved the effect of text analysis. For example, BERT (Bidirectional Encoder Representations from Transformers) was proposed by Devlin et al. in 2018. Its bidirectional encoding mechanism can simultaneously consider contextual information and significantly improve the ability of natural language understanding. Through deep learning of the problem description of open source projects, BERT can identify key information and extract relevant knowledge keywords. These keywords include not only specific technical terms, but also cover the core intent of the problem. In addition, the emergence of the Transformer architecture has promoted the advancement of text processing technology, enabling the model to process larger-scale data and extract deeper semantic relationships. Taking GPT as an example, OpenAI's GPT model achieves strong language understanding capabilities when processing natural language by generating pre-training and fine-tuning stages. Through these technologies, developers can more effectively analyze the text in the problem ticket, extract key information, and provide high-quality input for subsequent recommendation systems. It is worth mentioning that in recent years, technologies such as sentiment analysis and topic modeling have also been applied to the problem ticket analysis of open source projects. By performing sentiment analysis on the problem description, we can determine the urgency and importance of the problem, thereby providing developers with more targeted recommendations. In addition, topic modeling methods such as LDA (Latent Dirichlet Allocation) can help identify the underlying topic structure in the problem ticket, which is of great significance for building a more complex knowledge graph. In summary, the combination of large language models and natural language processing technology provides strong support for the recommendation of problem tickets for open source projects.
[0004] In open source projects, code snippets not only contain rich technical information, but also involve multiple functions and modules. In order to solve the problem ticket recommendation, it is particularly important to extract knowledge keywords from the code using multi-label classification technology. Multi-label classification is a machine learning task in which each sample can belong to multiple labels at the same time, which is extremely valuable for identifying the characteristics of the code because the same piece of code may be related to multiple technology stacks or problem types. Specifically, multi-label classification can be implemented using deep learning models such as convolutional neural networks (CNNs) or long short-term memory networks (LSTMs). These models can extract features from the code and identify different grammatical structures and semantic information. Researchers often use the abstract syntax tree (AST) of the code as input. By performing multi-label classification on the AST, they can identify various knowledge points involved in the code. For example, a piece of code may involve multiple aspects such as "database operations", "API calls" and "front-end display" at the same time. Using multi-label classification technology can effectively extract this information. In the implementation process, it is first necessary to build a training dataset containing multiple labels. By training on labeled code samples, the model can learn the relationship and similarity between different labels. After training, the model can analyze new code snippets and extract multiple knowledge keywords related to them. These keywords not only provide a more detailed description of the problem ticket, but also provide more dimensional information for the developer's skill matching. In addition, combined with natural language processing technology, the extracted knowledge keywords can be compared with the text description of the problem ticket to form a more comprehensive problem representation. This multi-dimensional analysis method significantly improves the accuracy of the recommendation system, helping developers to find relevant problems that match their skills more quickly, thereby improving development efficiency. In summary, using multi-label classification technology to extract knowledge keywords from code is an important means to achieve accurate recommendations, which helps solve the technology matching problem in open source projects.
[0005] As a structured way to store and represent knowledge, knowledge graphs can effectively integrate information from different sources. In open source software projects, more accurate recommendations can be achieved by storing extracted knowledge keywords in knowledge graphs. RippleNet is a recommendation technology based on knowledge graphs proposed by Zhang et al., which can provide users with personalized recommended content by learning the characteristics and relationships of nodes in the graph structure. This technology not only considers the direct connection between nodes, but also captures deeper relationship information through a multi-layer propagation mechanism, thereby improving the accuracy of recommendations. In specific implementations, the knowledge keywords stored in the knowledge graph can represent different dimensions of the problem, such as technology stack, problem type, solution, etc. By applying RippleNet, the historical behavior and skills of developers can be modeled, and a personalized recommendation list can be generated by combining the information in the knowledge graph. The advantage of this method is that it can not only make recommendations based on historical data, but also dynamically adapt to changes in developers and emerging problems, providing real-time support. In addition, combined with deep learning technology, the recommendation system can perform more complex pattern recognition and prediction. By using graph neural networks (GNNs), knowledge graphs can be deeply learned to identify potential associations and patterns, further improving the relevance of recommendations. In this way, developers can find the issues that suit them more quickly and achieve a more efficient development process. In short, the combination of knowledge graph and deep learning technology has opened up a new direction for the recommendation of issues in open source projects and effectively solved the limitations of traditional recommendation systems. Summary of the invention
[0006] The purpose of the present invention is to address the deficiencies of the prior art and provide a method and device for recommending open source platform developers based on knowledge decomposition.
[0007] The object of the present invention is to achieve the following technical solution: a method for recommending open source platform developers based on knowledge decomposition, comprising the following steps:
[0008] (1) For a given open source project, a list of open source platform problem tickets corresponding to the open source project is obtained; the list of open source platform problem tickets includes a list of pending problems and a list of resolved problems; then, a crawler technology is used to obtain text information, code information, and submitter information corresponding to each problem ticket in the list of pending problems and the list of resolved problems, and a text information set, code information set, and submitter set corresponding to the list of pending problems and the list of resolved problems are obtained;
[0009] (2) for each problem sheet in the list of pending problems and the list of solved problems, extract first knowledge keywords from corresponding text information using a large language model and a natural language processing tool to obtain a subset of first knowledge keywords corresponding to each problem sheet;
[0010] (3) for each problem sheet in the list of unsolved problems and the list of solved problems, extract second knowledge keywords from the corresponding code information using a multi-label classification model to obtain a subset of second knowledge keywords corresponding to each problem sheet;
[0011] (4) The list of unsolved problems and the list of solved problems are stored in the form of a knowledge graph through the corresponding first knowledge keyword subset and second knowledge keyword subset to obtain a complete knowledge graph;
[0012] (5) The similarity matrix of the open source platform problem list is calculated based on the complete knowledge graph. The similarity matrix is combined with the set of submitters corresponding to the solved problem list to generate recommendation results corresponding to each problem to be solved in the problem list.
[0013] Furthermore, the step (1) specifically includes the following sub-steps:
[0014] (1.1) For an open source project on a given software project hosting platform, obtain a list of open source platform problem tickets corresponding to the open source project; the open source platform problem ticket list includes a list of pending problems and a list of resolved problems, and the list of pending problems includes Issues to be resolved: , , …, , …, ,in, Indicates A list of issues to be resolved, ; The list of resolved issues includes Issues resolved: , , …, , …, ,in, Indicates resolved tickets, ;
[0015] (1.2) Use Python crawler technology to obtain the corresponding uniform resource locator address of each issue ticket in the open source platform issue ticket list by requesting the application programming interface of the software project hosting platform: , , …, , …, , , , …, , …, ,in, Indicates a problem ticket to be resolved The corresponding uniform resource locator address, Indicates a resolved issue ticket The corresponding uniform resource locator address;
[0016] (1.3) For any pending issue , use Python crawler technology to access the corresponding uniform resource locator address , save the title and content of the visited page as a corresponding problem list to be solved Text information , and save the uniform resource locator addresses of all pull requests in the access page; then use Python crawler technology to access the uniform resource locator addresses of all pull requests in turn, and save all relevant code snippets in the access page as a problem list to be solved Code information , and save all code submitters in the access page as a problem list to be resolved Submitter information ;
[0017] (1.4) Repeat step (1.3) for each problem to be solved to obtain the text information set corresponding to the list of problems to be solved , code information collection and the committer set ;
[0018] (1.5) For each resolved issue Repeat step (1.3) to obtain the text information set corresponding to the solved problem list , code information collection and the committer set ,in, Ticket for resolved issues Text information, Ticket for resolved issues Code information, Ticket for resolved issues The submitter information.
[0019] Furthermore, the step (2) specifically includes the following sub-steps:
[0020] (2.1) For any unresolved issue in the list of unresolved issues , design prompt words, use large language models based on text information Generate the corresponding problem summary ; Use natural language processing tools to generate question summaries based on part-of-speech classification methods The first subset of knowledge keywords is automatically extracted from ;
[0021] (2.2) Repeat step (2.1) for each problem in the list of problems to be solved, and obtain the total set of first knowledge keywords corresponding to the list of problems to be solved ;
[0022] (2.3) Repeat step (2.1) for each solved problem in the solved problem list to obtain the total set of first knowledge keywords corresponding to the solved problem list. ,in, Indicates a resolved issue ticket The corresponding first knowledge keyword subset.
[0023] Furthermore, the step (3) specifically includes the following sub-steps:
[0024] (3.1) Use Python crawler technology to crawl all tags in a specific field from open source projects on the software project hosting platform, and crawl all graded tags from the IT technology community website; use all the crawled tags in the specific field and all the graded tags as the first tag set;
[0025] (3.2) Download all post data from the official website of the IT technical question-and-answer website, and filter all post data that do not contain specific field labels to obtain clean post data, and obtain all labels in the clean post data as the second label set;
[0026] (3.3) Determine a third label set for multi-label classification based on the first label set and the second label set by manual screening and keyword matching; and select data corresponding to labels in the third label set from all post data as a classification data set;
[0027] (3.4) training a multi-label classification model based on the data set to obtain a trained multi-label classification model;
[0028] (3.5) Add any unresolved issue in the list of unresolved issues to the Corresponding code information Input into the trained multi-label classification model to obtain code information All corresponding tags are used as problem tickets to be solved The corresponding second knowledge keyword subset ;
[0029] (3.6) Repeat step (3.5) for each problem in the list of problems to be solved, and obtain the total set of second knowledge keywords corresponding to the list of problems to be solved ;
[0030] (3.7) Repeat step (3.5) for each solved problem in the solved problem list to obtain the total set of second knowledge keywords corresponding to the solved problem list ,in, Indicates a resolved issue ticket The corresponding second knowledge keyword subset.
[0031] Furthermore, the step (4) specifically includes the following sub-steps:
[0032] (4.1) Select a problem to be solved from the list of problems to be solved. , ; The issues to be resolved will then be The corresponding first knowledge keyword subset and the second knowledge keyword subset Each knowledge keyword in the problem list is used as a keyword node. As a single node of a problem, each node is connected directly as the initial knowledge graph to be solved;
[0033] (4.2) , repeat step (4.1) to obtain the corresponding knowledge graph, and then write the newly obtained knowledge graph into the initial knowledge graph to be solved: when writing a keyword node, calculate the similarity with the existing keyword nodes in the initial knowledge graph to be solved, and merge the two keyword nodes whose similarity is greater than the similarity threshold, until all keyword nodes are written, and obtain the updated knowledge graph to be solved;
[0034] (4.3) Repeat step (4.2) until , get the complete knowledge graph to be solved;
[0035] (4.4) Then select a solved problem from the list of solved problems. , ; The resolved issues will then be The corresponding first knowledge keyword subset and the second knowledge keyword subset Each knowledge keyword in the problem list is used as a keyword node. As a single node of a problem, they are connected as the initial solved knowledge graph; then the initial solved knowledge graph is written into the complete knowledge graph to be solved: when a keyword node is written, the similarity is calculated with the existing keyword nodes in the complete knowledge graph to be solved, and the two keyword nodes with similarity greater than the similarity threshold are merged until all keyword nodes are written to obtain the updated solved knowledge graph;
[0036] (4.5) , repeat step (4.4) until , and obtain a complete knowledge graph.
[0037] Furthermore, the step (5) specifically includes the following sub-steps:
[0038] (5.1) The similarity matrix of the open source platform issue list is calculated based on the complete knowledge graph. The similarity matrix is ,in, Indicates Open issues With Resolved tickets Similarity score between ;
[0039] (5.2) For each problem in the list of problems to be solved , list of issues to be resolved All similarity scores for , …, , …, Sort from largest to smallest and select the first The largest similarity score; the selected The submitter information of the solved issue ticket corresponding to the largest similarity score is used as the issue ticket to be solved The corresponding recommendation results.
[0040] The present invention also includes an open source platform developer recommendation device based on knowledge decomposition, including a memory and one or more processors, wherein the memory stores executable code, and when the one or more processors execute the executable code, it is used for the above-mentioned open source platform developer recommendation method based on knowledge decomposition.
[0041] The present invention also includes a computer-readable storage medium on which a program is stored. When the program is executed by a processor, the above-mentioned open source platform developer recommendation method based on knowledge decomposition is implemented.
[0042] The beneficial effects of the present invention are as follows: the present invention automatically extracts problem descriptions and related code snippets in open source projects through crawler technology, thereby improving the efficiency and accuracy of information acquisition; secondly, by combining large-scale language models and natural language processing technology, knowledge keywords are effectively extracted, thereby enhancing the understanding of the essence of the problem; the application of multi-label classification technology further extracts knowledge from the code, thereby ensuring a high correlation between the problem and the developer's skills; constructing these keywords into a knowledge graph not only realizes the systematic storage of knowledge, but also provides rich background information for subsequent recommendations; finally, the RippleNet knowledge graph recommendation technology is used to recommend suitable developers for each problem to be solved, thereby improving the efficiency of problem solving; this recommendation method is both accurate and explainable, can effectively promote collaboration and innovation in the open source community, helps accelerate project progress, and improves overall development quality. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] Figure 1 A flowchart for a method for recommending open source platform developers based on knowledge decomposition;
[0044] Figure 2 This is a schematic diagram of a complete knowledge graph;
[0045] Figure 3 A structural diagram of a developer recommendation device for an open source platform based on knowledge decomposition. DETAILED DESCRIPTION
[0046] In order to make the purpose, technical scheme and advantages of the present invention more clear, the present invention is further described in detail in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention, rather than all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present invention.
[0047] Example 1: Figure 1 As shown, the present invention provides an open source platform developer recommendation method based on knowledge decomposition, comprising the following steps:
[0048] (1) For a given open source project, a list of open source platform problem tickets corresponding to the open source project is obtained; the list of open source platform problem tickets includes a list of unresolved issues and a list of resolved issues; then crawler technology is used to obtain the text information, code information and submitter information corresponding to each problem ticket in the list of unresolved issues and the list of resolved issues, and a text information set, code information set and submitter set corresponding to the list of unresolved issues and the list of resolved issues are obtained.
[0049] The step (1) specifically includes the following sub-steps:
[0050] (1.1) For an open source project on a given software project hosting platform, obtain a list of open source platform issues corresponding to the open source project; the open source platform issue list includes a list of pending issues and a list of resolved issues, and the list of pending issues includes Issues to be resolved: , , …, , …, ,in, Indicates A list of issues to be resolved, ; The list of resolved issues includes Issues resolved: , , …, , …, ,in, Indicates resolved tickets, .
[0051] (1.2) Use Python crawler technology to obtain the corresponding uniform resource locator address of each issue ticket in the open source platform issue ticket list by requesting the application programming interface of the software project hosting platform: , , …, , …, , , , …, , …, ,in, Indicates a problem ticket to be resolved The corresponding uniform resource locator address, Indicates a resolved issue ticket The corresponding uniform resource locator address.
[0052] (1.3) For any pending issue , use Python crawler technology to access the corresponding uniform resource locator address , save the title and content of the visited page as a corresponding problem list to be solved Text information , and save the uniform resource locator addresses of all pull requests in the access page; then use Python crawler technology to access the uniform resource locator addresses of all pull requests in turn, and save all relevant code snippets in the access page as a problem list to be solved Code information , and save all code submitters in the access page as a problem list to be resolved Submitter information .
[0053] (1.4) Repeat step (1.3) for each problem to be solved to obtain the text information set corresponding to the list of problems to be solved , code information collection and the committer set .
[0054] (1.5) For each resolved issue Repeat step (1.3) to obtain the text information set corresponding to the solved problem list , code information collection and the committer set ,in, Ticket for resolved issues Text information, Ticket for resolved issues Code information, Ticket for resolved issues The submitter information.
[0055] (2) For each problem sheet in the list of unsolved problems and the list of solved problems, a large language model and a natural language processing tool are used to extract first knowledge keywords from the corresponding text information to obtain a subset of first knowledge keywords corresponding to each problem sheet.
[0056] The step (2) specifically includes the following sub-steps:
[0057] (2.1) For any unresolved issue in the list of unresolved issues , design prompt words, use large language models based on text information Generate the corresponding problem summary ; Use natural language processing tools to generate question summaries based on part-of-speech classification methods The first subset of knowledge keywords is automatically extracted from : ,in, Indicates a problem ticket to be resolved The corresponding The first knowledge keyword, Represents the first knowledge keyword subset Total included The first knowledge keyword, .
[0058] (2.2) Repeat step (2.1) for each problem in the list of problems to be solved, and obtain the total set of first knowledge keywords corresponding to the list of problems to be solved .
[0059] (2.3) Repeat step (2.1) for each solved problem in the solved problem list to obtain the total set of first knowledge keywords corresponding to the solved problem list. ,in, Indicates a resolved issue ticket The corresponding first knowledge keyword subset, , Indicates a resolved issue ticket The corresponding The first knowledge keyword, Represents the first knowledge keyword subset Total included The first knowledge keyword, .
[0060] (3) For each problem sheet in the list of unsolved problems and the list of solved problems, a multi-label classification model is used to extract second knowledge keywords from the corresponding code information to obtain a subset of second knowledge keywords corresponding to each problem sheet.
[0061] The step (3) specifically includes the following sub-steps:
[0062] (3.1) Use Python crawler technology to crawl all tags in a specific field from open source projects on the software project hosting platform, and crawl all graded tags from the IT technology community website; use all the crawled tags in the specific field and all the graded tags as the first tag set.
[0063] (3.2) Download all post data from the official website of the IT technical question and answer website, and filter out the data that does not contain specific field labels in all post data to obtain clean post data, and obtain all labels in the clean post data as the second label set.
[0064] (3.3) Based on the first label set and the second label set, determine the third label set for multi-label classification by manual screening and keyword matching; and filter out the data corresponding to the labels in the third label set from all post data as the classification data set.
[0065] (3.4) Training a multi-label classification model based on the data set to obtain a trained multi-label classification model.
[0066] The multi-label classification model is constructed based on the CodeBERT model combined with a linear layer and a sigmoid function; during the training process, the model parameters in the multi-label classification model can be updated through a back propagation algorithm to obtain the optimal model parameters.
[0067] (3.5) Add any unresolved issue in the list of unresolved issues to the Corresponding code information Input into the trained multi-label classification model to obtain code information All corresponding tags are used as problem tickets to be solved The corresponding second knowledge keyword subset : ,in, Indicates a problem ticket to be resolved The corresponding The second knowledge keyword, Represents the second knowledge keyword subset Total included The second knowledge keyword, .
[0068] (3.6) Repeat step (3.5) for each problem in the list of problems to be solved, and obtain the total set of second knowledge keywords corresponding to the list of problems to be solved .
[0069] (3.7) Repeat step (3.5) for each solved problem in the solved problem list to obtain the total set of second knowledge keywords corresponding to the solved problem list ,in, Indicates a resolved issue ticket The corresponding second knowledge keyword subset, , Indicates a resolved issue ticket The corresponding The second knowledge keyword, Represents the second knowledge keyword subset Total included The first knowledge keyword, .
[0070] (4) The list of unsolved problems and the list of solved problems are stored in the form of a knowledge graph through the corresponding first knowledge keyword subset and second knowledge keyword subset to obtain a complete knowledge graph.
[0071] The step (4) specifically includes the following sub-steps:
[0072] (4.1) Select a problem to be solved from the list of problems to be solved. , ; The issues to be resolved will then be listed The corresponding first knowledge keyword subset and the second knowledge keyword subset Each knowledge keyword in the problem list is used as a keyword node. As a single node of a problem, each node is connected directly as the initial knowledge graph to be solved;
[0073] (4.2) , repeat step (4.1) to obtain the corresponding knowledge graph, and then write the newly obtained knowledge graph into the initial knowledge graph to be solved: when writing a keyword node, calculate the similarity with the existing keyword nodes in the initial knowledge graph to be solved, and merge the two keyword nodes whose similarity is greater than the similarity threshold until all keyword nodes are written to obtain the updated knowledge graph to be solved.
[0074] The similarity threshold is 0.99.
[0075] (4.3) Repeat step (4.2) until , and obtain the complete knowledge graph to be solved.
[0076] (4.4) Then select a solved problem from the list of solved problems. , ; The resolved issues will then be The corresponding first knowledge keyword subset and the second knowledge keyword subset Each knowledge keyword in the problem list is used as a keyword node. As a single node of a problem, they are connected directly as the initial solved knowledge graph; then the initial solved knowledge graph is written into the complete knowledge graph to be solved: when a keyword node is written, the similarity is calculated with the existing keyword nodes in the complete knowledge graph to be solved, and the two keyword nodes with similarity greater than the similarity threshold are merged until all keyword nodes are written to obtain the updated knowledge graph to be solved-solved;
[0077] (4.5) , repeat step (4.4) until , and obtain a complete knowledge graph.
[0078] The complete knowledge graph obtained in this embodiment is as follows Figure 2 shown.
[0079] (5) The similarity matrix of the open source platform problem list is calculated based on the complete knowledge graph. The similarity matrix is combined with the set of submitters corresponding to the solved problem list to generate recommendation results corresponding to each problem to be solved in the problem list.
[0080] The step (5) specifically includes the following sub-steps:
[0081] (5.1) The similarity matrix of the open source platform issue list is calculated based on the complete knowledge graph. The similarity matrix is ,in, Indicates Open issues With Resolved tickets The similarity score between .
[0082] The calculation process of the similarity score is as follows: using the Node2Vec graph embedding method, a series of node sequence sets are obtained by random walk in the complete knowledge graph starting from the single question node, and converted into low-dimensional vectors as the vector representation of the single question node. Finally, the cosine similarity between the vectors of the two single question nodes is calculated as the similarity score between the two.
[0083] (5.2) For each problem in the list of problems to be solved , list of issues to be resolved All similarity scores for , …, , …, Sort from largest to smallest and select the first The largest similarity score; the selected The submitter information of the solved issue ticket corresponding to the largest similarity score is used as the issue ticket to be solved The corresponding recommendation results.
[0084] In this embodiment, the solved problem list includes problem sheet 1 and problem sheet 2. The unsolved problem list includes problem sheet 3. The first knowledge keyword subset, the second knowledge keyword subset and the provider information corresponding to problem sheet 1, problem sheet 2 and problem sheet 3 are shown in Table 1.
[0085] Table 1: First knowledge keyword subset, second knowledge keyword subset and provider information corresponding to Question Sheet 1, Question Sheet 2 and Question Sheet 3
[0086]
[0087] Then the corresponding complete knowledge graph is obtained as Figure 2 shown.
[0088] Then according to Figure 2 The complete knowledge graph shown in Figure 2 calculates the similarity matrix of the open source platform issue list, as shown in Table 2.
[0089] Table 2: Similarity matrix
[0090]
[0091] According to Table 2, the similarity score between Question 1 and Question 3 is 0.8; the similarity score between Question 2 and Question 3 is 0.6.
[0092] For issue ticket 3 in the list of issues to be resolved, all similarity scores of issue ticket 3 are sorted from large to small. Since the similarity score between issue ticket 3 and issue ticket 1 is greater than the similarity score between issue ticket 3 and issue ticket 2, the submitter information of issue ticket 2 is used as the recommendation result corresponding to issue ticket 3.
[0093] Embodiment 2: Corresponding to Embodiment 1 of the aforementioned method for recommending open source platform developers based on knowledge decomposition, the present invention further provides an embodiment of an apparatus for recommending open source platform developers based on knowledge decomposition.
[0094] See also Figure 3 An open source platform developer recommendation device based on knowledge decomposition provided in an embodiment of the present invention includes one or more processors for implementing an open source platform developer recommendation method based on knowledge decomposition in the above embodiment.
[0095] An embodiment of the open source platform developer recommendation device based on knowledge decomposition of the present invention can be applied to any device with data processing capabilities, and the device with data processing capabilities can be a device or apparatus such as a computer. The device embodiment can be implemented through software, or through hardware or a combination of software and hardware. Taking software implementation as an example, as a device in a logical sense, it is formed by the processor of any device with data processing capabilities in which it is located reading the corresponding computer program instructions in the non-volatile memory into the internal memory for execution. From the hardware level, if Figure 3 As shown in the figure, it is a hardware structure diagram of any device with data processing capability where the open source platform developer recommendation device based on knowledge decomposition of the present invention is located, except Figure 3 In addition to the processor, memory, network interface, and non-volatile memory shown, any device with data processing capabilities in which the apparatus in the embodiments is located may also include other hardware, generally based on the actual functions of the device with data processing capabilities, which will not be described in detail.
[0096] The implementation process of the functions and effects of each unit in the above-mentioned device is specifically described in the implementation process of the corresponding steps in the above-mentioned method, and will not be repeated here.
[0097] For the device embodiment, since it basically corresponds to the method embodiment, the relevant parts can refer to the partial description of the method embodiment. The device embodiment described above is only schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of the present invention. Ordinary technicians in this field can understand and implement it without paying creative work.
[0098] The embodiment of the present invention also provides a computer-readable storage medium, on which a program is stored. When the program is executed by a processor, an open source platform developer recommendation method based on knowledge decomposition in the above embodiment is implemented. The computer-readable storage medium can be an internal storage unit of any device with data processing capability described in any of the above embodiments, such as a hard disk or a memory. The computer-readable storage medium can also be an external storage device of any device with data processing capability, such as a plug-in hard disk, a smart memory card (Smart Media Card, SMC), an SD card, a flash card (Flash Card), etc. equipped on the device. Further, the computer-readable storage medium can also include both an internal storage unit and an external storage device of any device with data processing capability. The computer-readable storage medium is used to store the computer program and other programs and data required by any device with data processing capability, and can also be used to temporarily store data that has been output or is to be output.
[0099] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.
Claims
1. A method for recommending open source platform developers based on knowledge decomposition, characterized in that: The following steps are involved: (1) For a given open source project, obtain a list of open source platform issues corresponding to the open source project; The open source platform problem list includes a list of pending problems and a list of resolved problems; Then, crawler technology is used to obtain text information, code information, and submitter information corresponding to each problem sheet in the list of unresolved issues and the list of resolved issues, and a text information set, code information set, and submitter set corresponding to the list of unresolved issues and the list of resolved issues are obtained; (2) for each problem sheet in the list of pending problems and the list of solved problems, extract first knowledge keywords from corresponding text information using a large language model and a natural language processing tool to obtain a subset of first knowledge keywords corresponding to each problem sheet; (3) for each problem sheet in the list of unsolved problems and the list of solved problems, extract second knowledge keywords from the corresponding code information using a multi-label classification model to obtain a subset of second knowledge keywords corresponding to each problem sheet; (4) The list of unsolved problems and the list of solved problems are stored in the form of a knowledge graph through the corresponding first knowledge keyword subset and second knowledge keyword subset to obtain a complete knowledge graph; (5) The similarity matrix of the open source platform problem list is calculated based on the complete knowledge graph. The similarity matrix is combined with the set of submitters corresponding to the solved problem list to generate recommendation results corresponding to each problem to be solved in the problem list.
2. The open source platform developer recommendation method based on knowledge decomposition according to claim 1, characterized in that: The step (1) specifically includes the following sub-steps: (1.1) For a given open source project on a software project hosting platform, obtain a list of open source platform issue tickets corresponding to the open source project; The open source platform problem list includes a list of pending problems and a list of resolved problems. The list of pending problems includes Issues to be resolved: , , …, , …, ,in, Indicates A list of issues to be resolved, ; The list of resolved issues includes Issues resolved: , , …, , …, ,in, Indicates resolved tickets, ; (1.2) Use Python crawler technology to obtain the corresponding uniform resource locator address of each issue ticket in the open source platform issue ticket list by requesting the application programming interface of the software project hosting platform: , , …, , …, , , , …, , …, ,in, Indicates a problem ticket to be resolved The corresponding uniform resource locator address, Indicates a resolved issue ticket The corresponding uniform resource locator address; (1.3) For any pending issue , use Python crawler technology to access the corresponding uniform resource locator address , save the title and content of the visited page as a corresponding problem list to be solved Text information , and save the uniform resource locator addresses of all pull requests in the access page; then use Python crawler technology to access the uniform resource locator addresses of all pull requests in turn, and save all relevant code snippets in the access page as a problem list to be solved Code information , and save all code submitters in the access page as a problem list to be resolved Submitter information ; (1.4) Repeat step (1.3) for each problem to be solved to obtain the text information set corresponding to the list of problems to be solved , code information collection and the committer set ; (1.5) For each resolved issue Repeat step (1.3) to obtain the text information set corresponding to the solved problem list , code information collection and the committer set ,in, Ticket for resolved issues Text information, Ticket for resolved issues Code information, Ticket for resolved issues The submitter information.
3. The open source platform developer recommendation method based on knowledge decomposition according to claim 2, characterized in that: The step (2) specifically includes the following sub-steps: (2.1) For any unresolved issue in the list of unresolved issues , design prompt words, use large language models based on text information Generate the corresponding problem summary ; Use natural language processing tools to generate question summaries based on part-of-speech classification methods The first subset of knowledge keywords is automatically extracted from ; (2.2) Repeat step (2.1) for each problem in the list of problems to be solved, and obtain the total set of first knowledge keywords corresponding to the list of problems to be solved ; (2.3) Repeat step (2.1) for each solved problem in the solved problem list to obtain the total set of first knowledge keywords corresponding to the solved problem list. ,in, Indicates a resolved issue ticket The corresponding first knowledge keyword subset.
4. The open source platform developer recommendation method based on knowledge decomposition according to claim 3, characterized in that: The step (3) specifically includes the following sub-steps: (3.1) Use Python crawler technology to crawl all tags in a specific field from open source projects on the software project hosting platform, and crawl all graded tags from the IT technology community website; use all the crawled tags in the specific field and all the graded tags as the first tag set; (3.2) Download all post data from the official website of the IT technical question-and-answer website, and filter all post data that do not contain specific field labels to obtain clean post data, and obtain all labels in the clean post data as the second label set; (3.3) Determine a third label set for multi-label classification based on the first label set and the second label set by manual screening and keyword matching; and select data corresponding to labels in the third label set from all post data as a classification data set; (3.4) training a multi-label classification model based on the data set to obtain a trained multi-label classification model; (3.5) Add any unresolved issue in the list of unresolved issues to the Corresponding code information Input into the trained multi-label classification model to obtain code information All corresponding tags are used as problem tickets to be solved The corresponding second knowledge keyword subset ; (3.6) Repeat step (3.5) for each problem in the list of problems to be solved, and obtain the total set of second knowledge keywords corresponding to the list of problems to be solved ; (3.7) Repeat step (3.5) for each solved problem in the solved problem list to obtain the total set of second knowledge keywords corresponding to the solved problem list ,in, Indicates a resolved issue ticket The corresponding second knowledge keyword subset.
5. The open source platform developer recommendation method based on knowledge decomposition according to claim 4, characterized in that: The step (4) specifically includes the following sub-steps: (4.1) Select a problem to be solved from the list of problems to be solved. , ; The issues to be resolved will then be The corresponding first knowledge keyword subset and the second knowledge keyword subset Each knowledge keyword in the problem list is used as a keyword node. As a single node of a problem, each node is connected directly as the initial knowledge graph to be solved; (4.2) , repeat step (4.1) to obtain the corresponding knowledge graph, and then write the newly obtained knowledge graph into the initial knowledge graph to be solved: when writing a keyword node, calculate the similarity with the existing keyword nodes in the initial knowledge graph to be solved, and merge the two keyword nodes whose similarity is greater than the similarity threshold, until all keyword nodes are written, and obtain the updated knowledge graph to be solved; (4.3) Repeat step (4.2) until , get the complete knowledge graph to be solved; (4.4) Then select a solved problem from the list of solved problems. , ; The resolved issues will then be The corresponding first knowledge keyword subset and the second knowledge keyword subset Each knowledge keyword in the problem list is used as a keyword node. As a single node of a problem, they are connected separately as the initial solved knowledge graph; Then, the initial solved knowledge graph is written into the complete knowledge graph to be solved: when a keyword node is written, the similarity is calculated with the existing keyword nodes in the complete knowledge graph to be solved, and the two keyword nodes with similarity greater than the similarity threshold are merged until all keyword nodes are written to obtain the updated solved knowledge graph; (4.5) , repeat step (4.4) until , and obtain a complete knowledge graph.
6. The open source platform developer recommendation method based on knowledge decomposition according to claim 5, characterized in that: The step (5) specifically includes the following sub-steps: (5.1) The similarity matrix of the open source platform issue list is calculated based on the complete knowledge graph. The similarity matrix is ,in, Indicates Open issues With Resolved tickets Similarity score between them; (5.2) For each problem in the list of problems to be solved , list of issues to be resolved All similarity scores for , …, , …, Sort from largest to smallest and select the first The largest similarity score; the selected The submitter information of the solved issue ticket corresponding to the largest similarity score is used as the issue ticket to be solved The corresponding recommendation results.
7. An open source platform developer recommendation device based on knowledge decomposition, characterized in that: It includes a memory and one or more processors, wherein the memory stores executable code, and when the one or more processors execute the executable code, they are used to implement the open source platform developer recommendation method based on knowledge decomposition as described in any one of claims 1-6.
8. A computer-readable storage medium, characterized in that: A program is stored thereon, and when the program is executed by a processor, an open source platform developer recommendation method based on knowledge decomposition as described in any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
File knowledge graph-based expert recommendation method for open source software community
CN107391542A
Method and system for utilizing domain knowledge to automatically identify solution to a problem
US20200387809A1