KR20200062917A - Open Source Software Recommendation System and Method Using Personal Profiling - Google Patents
Open Source Software Recommendation System and Method Using Personal Profiling Download PDFInfo
- Publication number
- KR20200062917A KR20200062917A KR1020180148896A KR20180148896A KR20200062917A KR 20200062917 A KR20200062917 A KR 20200062917A KR 1020180148896 A KR1020180148896 A KR 1020180148896A KR 20180148896 A KR20180148896 A KR 20180148896A KR 20200062917 A KR20200062917 A KR 20200062917A
- Authority
- KR
- South Korea
- Prior art keywords
- open source
- source software
- user
- software
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Recommending goods or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Electronic shopping [e-shopping] by investigating goods or services
- G06Q30/0625—Electronic shopping [e-shopping] by investigating goods or services by formulating product or service queries, e.g. using keywords or predefined options
- G06Q30/0629—Electronic shopping [e-shopping] by investigating goods or services by formulating product or service queries, e.g. using keywords or predefined options by pre-processing results, e.g. ranking or ordering results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Marketing (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 오픈소스 소프트웨어를 사용하려는 사용자에게 사용자 프로파일링 및 키워드 검색을 결합하여 오픈소스 소프트웨어를 쉽고 효율적으로 검색하며 어려운 라이선스의 개념을 쉽게 제공하면서 라이선스 선택의 편의를 도모하며 그에 부합하는 신뢰성 있는 오픈소스 소프트웨어를 추천해주는 오픈소스 소프트웨어 추천 방법 및 시스템에 관한 것이다. 본 발명에 따른 오픈소스 소프트웨어 추천 방법은, 오픈소스 소프트웨어에 대한 오픈소스 정보, 라이선스 정보, 오픈소스 평가, 사용자 선호도에 대한 메타 데이터를 수집하여 오픈소스 소프트웨어 데이터베이스를 구축하고 수집된 데이터를 정제 및 가공하여 다시 저장하는 단계; 사용자로부터 오픈소스 소프트웨어에 대한 사용자 선택 조건을 입력받는 단계; 사용자에 대한 개인 프로파일링을 진행하고 사용자가 원하는 오픈소스를 추천하고 사용자로부터 입력받은 사용자 선택 조건을 결합시켜 오픈소스 소프트웨어를 검색하는 단계; 및 상기 검색된 오픈소스 소프트웨어 결과를 상기 사용자에게 표시하는 단계를 포함하는 것을 특징으로 한다.The present invention combines user profiling and keyword search for users who want to use open source software to easily and efficiently search for open source software, easily provides a concept of difficult licenses, and facilitates the convenience of license selection, and provides reliable openness corresponding thereto. An open source software recommendation method and system for recommending source software. The open source software recommendation method according to the present invention collects metadata about open source information, license information, open source evaluation, and user preferences for an open source software to build an open source software database and refines and processes the collected data. To save again; Receiving a user selection condition for open source software from a user; Performing personal profiling for the user, recommending the open source desired by the user, and searching for open source software by combining user selection conditions received from the user; And displaying the searched open source software results to the user.
Description
본 발명은 머신 러닝 기술 중 협업 필터링 기법을 사용하여 사용자로부터 오픈소스 소프트웨어 검색을 위한 분류 정보 및 키워드들을 입력받고 이를 기반으로 사용자 프로파일링을 한 결과를 이용해서 사용자에게 맞는 오픈소스 소프트웨어를 추천해 주는 시스템 및 그 방법에 관한 것이다.The present invention uses a collaborative filtering technique among machine learning techniques to receive classification information and keywords for searching for open source software from a user, and recommends open source software suitable for a user by using user profiling results based on this. It relates to a system and a method.
오픈소스 소프트웨어 (open source software, OSS)는 저작권이 존재하지만 누구나 자유롭게 사용하고 수정하며 재배포 할 수 있는 소프트웨어이다. 이렇게 자유롭게 사용할 수 있으면서 오픈소스 소프트웨어를 사용하는 사용자들이 증가하고 있는 추세며 시장규모도 지속적으로 증가하고 있다. 오픈소스 소프트웨어는 빠르고 유연한 개발, 호환성, 안전성 등의 장점을 가진다. 하지만 오픈소스 소프트웨어는 지적재산권이 존재하는 소프트웨어로 라이선스별 의무사항의 세부사항이 달라지기 때문에 사용자들이 이를 식별하여 쓰기 어렵고, 다양한 오픈소스 소프트웨어가 존재하는데 반해 관련 문서가 부족하기 때문에 오픈소스 소프트웨어를 선택하는 것도 쉽지 않은 일이다.Although open source software (OSS) is copyrighted, it is software that anyone can freely use, modify, and redistribute. The number of users using open source software while being free to use is increasing, and the market size is also continuously increasing. Open source software has the advantages of fast and flexible development, compatibility, and safety. However, open source software is software that has intellectual property rights, and because the details of the obligations for each license are different, it is difficult for users to identify and use it. It is also not easy to do.
최근에는 오픈소스 소프트웨어를 저장하는 서비스를 제공해주는 분산 버전 관리 툴인 웹 호스팅 서비스들이 많이 등장하고 있다. 웹 호스팅 서비스들은 무료 호스팅 서비스를 제공하며 쉽게 참여할 수 있다는 장점을 가지면서 오픈소스 소프트웨어를 개발하는 개발자들에게 큰 인기를 끌고 있다. 대표적인 웹 호스팅 서비스로는 Github(www.github.com), SourceForge(www.sourceforge.net) 등이 있다. Recently, web hosting services, which are distributed version control tools that provide services for storing open source software, have appeared. Web hosting services offer free hosting services and have the advantage of being easy to participate, and have become very popular with developers developing open source software. Typical web hosting services include Github (www.github.com) and SourceForge (www.sourceforge.net).
머신 러닝이란 컴퓨터에게 사람이 직접 명시적으로 Logic을 지시하지 않아도 데이터를 통해 컴퓨터가 학습을 하고 그것을 사용해 컴퓨터가 자동으로 문제를 해결하도록 하는 것을 의미한다. 머신 러닝은 작동 방식에 따라 정답지로 학습을 하며 예측 모델 등에 사용되는 지도 학습(supervised learning)과 정답 없이 학습하고 군집화 등에 사용되는 비지도 학습(unsupervised learning), 시뮬레이션 반복 학습을 하며 성능 강화 등에 사용되는 강화 학습(reinforcement learning)으로 나눌 수 있다.Machine learning means that the computer learns from the data and uses it to automatically solve the problem without the need for a person to explicitly instruct the computer. Machine learning learns with the correct answer depending on how it works, supervised learning used for predictive models, etc., unsupervised learning used for clustering, unsupervised learning used for clustering, iterative simulation, and used to enhance performance. It can be divided into reinforcement learning.
협업 필터링이란 많은 사용자들로부터 얻은 기호 정보에 따라 사용자들의 관심사들을 예측하고 추천해주는 방법으로 비슷한 취향을 가진 고객들에게 서로 아직 구매하지 않은 상품들은 교차 추천하거나 분류된 고객의 취향이나 생활 형태에 따라 관련 상품을 추천하는 형태의 서비스를 제공하기 위해 사용되는 방법이다. 이 알고리즘은 결과가 직관적이며 항목의 구체적인 내용을 분석할 필요가 없다는 장점이 있다. 비슷한 패턴을 가진 사용자나 항목을 추출하는 기술이 핵심적이며 유클리디안 거리, 피어슨 상관계수, 자카드 계수 등의 방법이 많이 사용된다. 협업 필터링은 나와 취향이 비슷한 사용자가 어떤 걸 선호했는지를 기반으로 상품을 추천하는 기법인 사용자 기반 협업 필터링과 내가 이전에 구매했던 항목을 기반으로 그 상품과 연관성이 있는 다른 상품을 추천하는 기법인 아이템 기반 협업 필터링이 대표적이다.Collaborative filtering is a method of predicting and recommending users' interests based on preference information obtained from many users. Cross-recommending products that have not yet been purchased to customers with similar tastes or related products according to the tastes or lifestyles of classified customers Is a method used to provide a service in the form of recommendation. This algorithm has the advantage that the results are intuitive and there is no need to analyze the details of the item. The technique of extracting users or items with similar patterns is key, and methods such as Euclidean distance, Pearson correlation coefficient, and Jacquard coefficient are frequently used. Collaborative filtering is a user-based collaborative filtering technique that recommends products based on the preferences of users who have a similar taste to me, and items that are a technique that recommends other products related to the product based on items that I previously purchased. Based collaborative filtering is typical.
본 발명의 과제는 오픈소스 소프트웨어를 선정할 때 발생하는 선택의 어려움이나 라이선스 의무사항 선택의 복잡함을 줄이고 사용자에 대한 개인 프로파일링 결과에 기반하여 사용자가 원하는 오픈소스 소프트웨어를 추천해주는 것을 목적으로 한다.An object of the present invention is to reduce the difficulty of selection or the complexity of selecting a license obligation that occurs when selecting open source software and to recommend the open source software desired by the user based on personal profiling results for the user.
오픈소스 소프트웨어를 사용하려는 개발자, 기업 및 일반 사용자에게 원하는 오픈소스 소프트웨어를 효율적으로 검색할 수 있고, 어려운 라이선스의 개념을 쉽게 제공하며 다양화된 요구 사항에 부합하는 신뢰성 있는 오픈소스 소프트웨어를 추천해 주고 사용자 정보 및 사용자의 선호도를 프로파일링 하여 사용자 개개인에게 적합한 오픈소스 소프트웨어를 추천해 줄 수 있는 오픈소스 소프트웨어 추천 방법 및 시스템을 제공하는데 목적이 있다.Developers, businesses, and general users who want to use open source software can efficiently search for the desired open source software, easily provide the concept of difficult licensing, and recommend reliable open source software that meets diversified requirements. It is an object of the present invention to provide an open source software recommendation method and system capable of recommending suitable open source software to individual users by profiling user information and user preferences.
본 발명을 해결하기 위한 오픈소스 소프트웨어 추천 방법은, 오픈소스 소프트웨어의 정보, 라이선스 정보, 오픈소스 소프트웨어 평가 정보, 사용자 선호도 정보에 대한 메타정보를 수집하여 오픈소스 소프트웨어 데이터 수집 시스템을 구축하는 단계; 오픈소스와 사용자 정보를 매핑 시키며 데이터를 처리하기 쉽게 전처리하는 오픈소스 소프트웨어 데이터 저장/정제/가공 단계; 구축된 오픈소스 소프트웨어 데이터 수집 시스템으로부터 얻어진 데이터들을 협업 필터링 추천 알고리즘을 사용하여 사용자 별 추천 오픈소스 소프트웨어를 추천해주는 오픈소스 소프트웨어 추천 엔진; 사용자로부터 오픈소스 소프트웨어 검색을 위한 오픈소스 정보, 라이선스 정보, 오픈소스 평가 정보에 해당하는 사용자 선택 조건을 입력받는 단계; 오픈소스 소프트웨어 추천엔진을 통해 추천된 사용자 별 오픈소스 소프트웨어와 사용자 선택 조건을 필터링하여 오픈소스 소프트웨어를 검색하는 단계; 검색된 오픈소스 소프트웨어를 사용자에게 표시하는 단계를 포함하는 것을 특징으로 한다. An open source software recommendation method for solving the present invention comprises: constructing an open source software data collection system by collecting meta information about open source software information, license information, open source software evaluation information, and user preference information; Open source software data storage/refining/processing step of mapping open source and user information and preprocessing data easily; An open source software recommendation engine that recommends recommended open source software for each user using a collaborative filtering recommendation algorithm for data obtained from the constructed open source software data collection system; Receiving a user selection condition corresponding to open source information, license information, and open source evaluation information for searching for open source software from a user; Filtering open source software and user selection criteria recommended by the user through the open source software recommendation engine to search for open source software; And displaying the searched open source software to the user.
상기 구축하는 오픈소스 소프트웨어 수집부는, 웹 호스팅 서비스인 github의 API 및 webhook 방식을 이용하여 데이터를 수집하며 그 외 사용자에 관한 정보는 웹 서비스에 포함된 로그인 정보를 사용한다. The open source software collection unit to be constructed collects data by using the API and webhook method of github, a web hosting service, and other user information uses login information included in the web service.
상기 오픈소스 소프트웨어 데이터 저장/정제/가공부는, 수집된 오픈소스 소프트웨어 각각에 대하여 머신 러닝의 입력 데이터로 쓰이기 위한 정제 및 가공 과정을 거칠 수 있으며 정제 및 가공이 끝난 데이터들은 상기 오픈소스 데이터베이스에 저장할 수 있다. The open source software data storage/purification/processing unit may undergo a refinement and processing process to be used as input data of machine learning for each collected open source software, and the purified and processed data may be stored in the open source database. have.
상기 사용자 선택 조건 입력부는, 웹 서비스를 통하여 제안된 오픈소스 소프트웨어 분류 정보, 라이선스 선정 기준, 오픈소스 소프트웨어 평가 항목에 대한 사용자 선택을 입력으로 받을 수 있으며 오픈소스 소프트웨어를 추천해 주기 위한 입력 데이터로 사용될 수 있다. The user selection condition input unit may receive user selection for the proposed open source software classification information, license selection criteria, and open source software evaluation items through a web service, and may be used as input data for recommending open source software. Can be.
상기 오픈소스 소프트웨어 추천 엔진부는, 실질적으로 머신 러닝 기법 중 협업 필터링 기법을 사용하여 다른 사용자들과의 유사도를 계산하고 사용자가 선택한 평가 항목 요소에 대한 유사도를 계산하여 개인 프로파일링을 진행하며, 개인 프로파일링을 통해 얻어진 결과를 토대로 각 사용자에게 알맞은 오픈소스 소프트웨어를 추천해 줄 수 있다.The open source software recommendation engine unit performs personal profiling by calculating the similarity with other users using the collaborative filtering technique among the machine learning techniques and calculating the similarity with respect to the evaluation item element selected by the user. Based on the results obtained through the ring, we can recommend open source software suitable for each user.
상기 오픈소스 소프트웨어 검색부는, 입력부를 통해 입력받은 사용자 선택 조건과 추천 엔진부를 통해 추천된 오픈소스 소프트웨어 정보를 결합해 사용자가 원하는 범주 안에 해당하는 오픈소스 소프트웨어를 추천해 줄 수 있다.The open source software search unit may combine the user selection conditions received through the input unit with the recommended open source software information through the recommendation engine unit to recommend open source software in a category desired by the user.
상기 웹 서비스 표시부는, 상기 검색된 오픈소스 소프트웨어를 사용자가 입력했던 사용자 선택 조건 중 평가 항목의 평가 점수에 기반을 두어 결과를 상기 사용자에게 표시하는 것을 특징으로 한다. The web service display unit may display the result to the user based on an evaluation score of an evaluation item among user selection conditions in which the user input the searched open source software.
본 발명은 복잡한 라이선스 선정 기준을 사용자에게 쉽게 제공하여 선택하게 함으로써 사용자가 원하는 기준에 부합하는 라이선스에 해당하는 오픈소스를 추천하여 사용자의 편의를 높이며 라이선스 정책 위반을 줄일 수 있으며, 사용자가 기존에 사용했던 오픈소스 소프트웨어와 비슷한 오픈소스 소프트웨어 혹은 사용자와 비슷한 패턴의 사용자가 사용했던 오픈소스 소프트웨어를 추천해 줄 수 있는 효과를 발휘한다.The present invention recommends open source corresponding to a license that satisfies a user's desired criterion by easily providing a user with a complicated license selection criterion and selecting it, thereby increasing user convenience and reducing violation of the license policy, and the user can use the existing It has the effect of recommending open source software similar to the open source software that was used, or open source software used by users with a pattern similar to the user.
도 1은 본 발명의 개인 프로파일링을 이용한 오픈소스 소프트웨어 추천 방법 및 시스템을 나타낸 시스템 구성도이다.
도 2는 본 발명의 개인 프로파일링을 이용한 오픈소스 소프트웨어 추천 방법 및 시스템의 순서도이다.
도 3은 오픈소스 소프트웨어 데이터베이스를 구축하기 위해 필요한 데이터 구성도이다.1 is a system configuration diagram illustrating an open source software recommendation method and system using personal profiling of the present invention.
2 is a flowchart of an open source software recommendation method and system using personal profiling of the present invention.
3 is a data configuration diagram required to construct an open source software database.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. In the following description and the accompanying drawings, elements that are substantially the same are denoted by the same reference numerals, and redundant description will be omitted. In addition, in the description of the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted.
도 1은 본 발명의 실시 예인 개인 프로파일링을 이용한 오픈소스 소프트웨어 추천 방법 및 시스템을 나타낸 시스템 구성도이고, 오픈소스 소프트웨어 수집부(110), 오픈소스 소프트웨어 데이터 저장/정제/가공부(120), 사용자 선택 조건 입력부(130), 오픈소스 소프트웨어 추천 엔진부(140), 오픈소스 소프트웨어 검색부(150), 웹 서비스 표시부(160), 오픈소스 소프트웨어 데이터 베이스(200), 웹 페이지(300)으로 이루어지며, 도 2는 본 발명의 개인 프로파일링을 이용한 오픈소스 소프트웨어 추천 방법 및 시스템을 사용해 사용자에게 적합한 오픈소스 소프트웨어를 추천해 주는 과정을 나타낸 순서도이다. 1 is a system configuration diagram showing an open source software recommendation method and system using personal profiling, which is an embodiment of the present invention, an open source
먼저, 오픈소스 소프트웨어 수집부(110)는 오픈소스 소프트웨어 정보, 라이선스 정보, 오픈소스 평가 정보, 사용자 선호도 정보에 대한 메타 데이터를 수집하여 오픈소스 소프트웨어 데이터베이스(200)을 구축한다. 오픈소스 소프트웨어 저장/정제/가공부(120)에서는 수집된 오픈소스 소프트웨어 평가 정보를 머신 러닝의 협업 필터링 기법에 적용시키기 위한 데이터를 정제 및 가공하여 다시 오픈소스 소프트웨어 데이터베이스(200)에 저장한다. 오픈소스 정보, 라이선스 선정 기준, 오픈소스 평가 항목에 해당되는 사용자 선택 조건 입력부(130)를 가지며, 협업 필터링을 사용하여 사용자 프로파일링을 적용시킨 오픈소스 소프트웨어를 추천해주는 오픈소스 소프트웨어 추천 엔진부(140)를 가진다. 추천된 오픈소스 소프트웨어와 입력부를 통해 입력받은 사용자 선택 조건을 이용하여 검색하는 오픈소스 소프트웨어 검색부(150), 검색부를 통해 추천된 오픈소스 소프트웨어를 정렬하여 웹 화면에 보여줄 수 있도록 하는 웹 서비스 표시부(160)를 통하여 사용자가 이용하는 웹 페이지(300)에 개인프로파일링을 이용해 추천된 오픈소스 소프트웨어를 표시한다.First, the open source
도 2는 개인 프로파일링을 이용한 오픈소스 소프트웨어 추천 방법 및 시스템에 대한 순서도를 나타낸다. 오픈소스, 라이선스, 오픈소스 평가, 사용자 선호도 데이터 수집(201) 단계에서는 오픈소스 소프트웨어 메타 데이터를 수집하며 이는 Github의 API와 Webhook 서비스를 통하여 도 3과 같은 정보를 가지며 수집된다. 오픈소스 소프트웨어 프로젝트명, 오픈소스 소프트웨어 주제, 라이선스 명을 포함하는 오픈소스 소프트웨어 정보(410), 라이선스 별 라이선스 선정 기준에 대한 라이선스 정보(420), 오픈소스 소프트웨어 소프트웨어를 정량적으로 평가한 값으로 오픈소스 커밋 수, 브랜치 수, 풀 리퀘스트 수, 이슈 수, 머지 수, 조직 정보 등을 포함하는 오픈소스 평가 정보(430), 사용자의 오픈소스 프로젝트 선호도, 검색 시 사용한 평가 항목을 포함하는 사용자 선호도 정보(440)에 대한 메타 데이터가 수집되며 수집된 데이터로 오픈소스 소프트웨어 데이터베이스를 구축(202) 하는 단계를 가진다.2 shows a flowchart for an open source software recommendation method and system using personal profiling. In the open source, license, open source evaluation, and user preference
구축된 오픈소스 소프트웨어 데이터베이스에 저장된 오픈소스 소프트웨어 정보를 추천 시스템에 적용시키기 위해 값을 전처리하여 다시 데이터베이스에 저장하는 데이터 전처리 후 데이터베이스에 저장(203)하는 단계에서는 수치 값을 표준화하기 위하여 0과 1사이의 값으로 변환하는 과정을 가지고 그 외의 업데이트 날짜와 같은 날짜 항목들을 수치 데이터로 변환하는 전처리 과정을 가진 후 오픈소스 소프트웨어 정보와 사용자 선호도 정보를 오픈소스 소프트웨어 항목에 매핑하는 과정을 가진다. In the step of pre-processing and storing the data in the database after pre-processing the values to apply the open-source software information stored in the built-in open-source software database to the recommendation system (0), in order to standardize the numerical values It has a process of converting to the value of, and a pre-processing process of converting date items such as other update dates into numerical data, and then mapping the open source software information and user preference information to the open source software item.
사용자 선택 조건 입력(204) 단계에서는 사용자 선택 조건으로 오픈소스 소프트웨어 정보, 라이선스 선정 기준, 오픈소스 소프트웨어 평가 정보를 입력받는다. In the user selection
사용자 기반, 아이템 기반으로 사용자가 선호할만한 것을 찾아주는 협업 필터링 알고리즘을 사용하여 사용자 프로파일링 후 오픈소스 소프트웨어 추천(205) 단계에서는 사용자 로그인 정보를 사용해 사용자가 기존에 평가했던 오픈소스 소프트웨어 프로젝트에 대한 선호도 점수와 사용자가 중요하게 선택하며 선택했던 평가 항목 정보를 통해 머신 러닝 기법 중 추천에 이용되는 협업 필터링 기법을 사용하여 사용자 다른 사용자들과의 유사도를 계산하고 사용자가 선택한 평가 항목 요소에 대한 유사도를 계산하여 개인 프로파일링을 진행하고 프로파일링 결과에 알맞은 사용자가 선호할만한 오픈소스를 추천한다. 협업 필터링 알고리즘에 의해 추천된 오픈소스 소프트웨어 중 사용자로 입력받은 사용자 선택 조건을 적용시켜 조건에 부합하는 오픈소스 소프트웨어를 검색한다. 추천된 오픈소스 중 사용자 선택 조건에 부합하는 오픈소스 소프트웨어 검색(206) 단계를 거쳐 검색된 데이터는 사용자가 선택한 평가 기준에 대한 정량적 평가 점수에 따라 사용자의 사용하는 웹 서비스에 표시해주는 평가 점수에 따른 오픈소스 소프트웨어 표시(207) 단계를 가진다.After user profiling using a collaborative filtering algorithm that finds the user's preference based on the user-based or item-based, the open source software recommendation step (205) uses the user login information to evaluate the preference of the open source software project that the user has previously evaluated. Calculate the similarity with other users of the user using the collaborative filtering technique used for recommendation among the machine learning techniques based on the score and the evaluation item information that the user selected and selected importantly, and calculate the similarity to the user selected evaluation element Proceed with personal profiling, and recommend open source that the user prefers to the profiling result. Among the open source software recommended by the collaborative filtering algorithm, the user selection condition received as a user is applied to search for open source software that satisfies the condition. Among the recommended open sources, the data searched through the open source
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written in a program executable on a computer and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, ROM, floppy disk, hard disk, etc.), an optical reading medium (eg, CD-ROM, DVD, etc.).
본 발명의 실시예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 집적 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 실시예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 실시예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Embodiments of the present invention may be represented by functional block configurations and various processing steps. These functional blocks can be implemented with various numbers of hardware or/and software configurations that perform specific functions. For example, an embodiment may be implemented in an integrated circuit configuration such as memory, processing, logic, look-up table, etc., capable of executing various functions by control of one or more microprocessors or other control devices. You can hire them. Similar to how the components of the present invention can be implemented in software programming or software components, an embodiment includes C, C++, including various algorithms implemented in a combination of data structures, processes, routines or other programming components. , Can be implemented in programming or scripting languages such as Java, assembler, etc. Functional aspects can be implemented with algorithms running on one or more processors. In addition, embodiments may employ conventional techniques for electronic environment setting, signal processing, and/or data processing. Terms such as "mechanism", "element", "means", and "configuration" can be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in connection with a processor or the like.
실시예에서 설명하는 특정 실행들은 일 실시예들로서, 어떠한 방법으로도 실시 예의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the embodiment are one embodiment, and do not limit the scope of the embodiment in any way. For brevity of the specification, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings are illustrative examples of functional connections and/or physical or circuit connections. It can be represented as a connection, or circuit connections. In addition, unless specifically mentioned, such as "essential", "important", etc., it may not be a necessary component for the application of the present invention.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been focused on the preferred embodiments. Those skilled in the art to which the present invention pertains will understand that the present invention may be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered in terms of explanation, not limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the equivalent range should be interpreted as being included in the present invention.
Claims (8)
사용자로부터 오픈소스 소프트웨어에 대한 사용자 선택 조건을 입력받는 단계;
사용자에 대한 개인 프로파일링을 진행하고 사용자가 원하는 오픈소스를 추천하고 사용자로부터 입력받은 사용자 선택 조건을 결합시켜 오픈소스 소프트웨어를 검색하는 단계; 및
상기 검색된 오픈소스 소프트웨어 결과를 상기 사용자에게 표시하는 단계를 포함하는 것을 특징으로 하는 오픈소스 소프트웨어 추천 방법. Collecting open source information, license information, open source evaluation, and user preferences for open source software to build an open source software database, refining and processing the collected data, and storing it again;
Receiving a user selection condition for open source software from a user;
Performing personal profiling for the user, recommending the open source desired by the user, and searching for open source software by combining user selection conditions received from the user; And
And displaying the searched open source software results to the user.
상기 수집된 오픈소스 소프트웨어 메타 데이터로 오픈소스 소프트웨어 데이터베이스를 구축하고 데이터를 정제 및 가공하는 저장/정제/가공부;
사용자로부터 오픈소스 소프트웨어 검색을 위해 사용자 선택 조건을 입력받는 입력부;
사용자에 대한 개인 프로파일링을 진행하고 사용자에게 오픈소스 소프트웨어를 추천해주는 오픈소스 소프트웨어 추천 엔진부; 및
상기 추천된 오픈소스 소프트웨어와 입력부로부터 입력받은 조건을 결합시켜 오픈소스 소프트웨어를 검색하는 검색부를 포함하고,
상기 검색부를 통해 검색된 오픈소스 소프트웨어의 결과를 상기 사용자에게 표시하는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.A collection unit for collecting metadata about open source information, license information, open source evaluation, and user preferences for open source software;
A storage/purification/processing unit that builds an open source software database with the collected open source software metadata and purifies and processes the data;
An input unit that receives a user selection condition for searching for open source software from the user;
An open source software recommendation engine unit that performs personal profiling for users and recommends open source software to users; And
And a search unit for searching the open source software by combining the recommended open source software and the conditions received from the input unit,
Open source software recommendation system, characterized in that for displaying the results of the open source software searched through the search unit to the user.
상기 오픈소스 소프트웨어 수집부는, 호스팅 서비스인 github의 API 및 webhook 방식을 이용하여 데이터를 수집하며 그 외 사용자에 관한 정보는 웹 서비스에 포함된 로그인 정보를 사용하는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.According to claim 2,
The open source software collection unit, an open source software recommendation system characterized in that it collects data using the API and webhook method of the hosting service, github, and uses other user information for login information included in the web service.
상기 오픈소스 소프트웨어 데이터 저장/정제/가공부는, 수집된 오픈소스 소프트웨어 각각에 대하여 머신 러닝의 입력 데이터로 쓰이기 위한 정제 및 가공 과정을 거치며 정제 및 가공이 끝난 데이터들은 상기 오픈소스 데이터베이스에 저장하는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.According to claim 2,
The open source software data storage/purification/processing unit undergoes a refinement and processing process to be used as input data of machine learning for each collected open source software, and the refined and processed data is stored in the open source database. Open source software recommendation system.
상기 사용자 선택 조건 입력부는, 웹 서비스를 통하여 제안된 오픈소스 소프트웨어 분류 정보, 라이선스 선정 기준, 오픈소스 소프트웨어 평가 항목에 대한 사용자 선택을 입력으로 받으며 오픈소스 소프트웨어를 추천해 주기 위한 입력 데이터로 사용되는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.According to claim 2,
The user selection condition input unit receives input of user selection for the proposed open source software classification information, license selection criteria, and open source software evaluation items through a web service, and is used as input data for recommending open source software. Features open source software recommendation system.
상기 오픈소스 소프트웨어 추천 엔진부는, 실질적으로 머신 러닝 기법 중 협업 필터링 기법을 사용하여 다른 사용자들과의 유사도를 계산하고 사용자가 선택한 평가 항목 요소에 대한 유사도를 계산하여 개인 프로파일링을 진행하며, 개인 프로파일링을 통해 얻어진 결과를 토대로 각 사용자에게 알맞은 오픈소스 소프트웨어를 추천해 주는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.According to claim 2,
The open source software recommendation engine unit performs personal profiling by calculating the similarity with other users using a collaborative filtering technique among the machine learning techniques, and calculating the similarity with respect to the evaluation item element selected by the user. Based on the results obtained through the ring, an open source software recommendation system characterized by recommending open source software suitable for each user.
상기 오픈소스 소프트웨어 검색부는, 입력부를 통해 입력받은 사용자 선택 조건과 추천 엔진부를 통해 추천된 오픈소스 소프트웨어 정보를 결합해 사용자가 원하는 범주 안에 해당하는 오픈소스 소프트웨어를 추천해 주는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.According to claim 2,
The open source software search unit combines user selection conditions received through the input unit and recommended open source software information through the recommendation engine unit, thereby recommending open source software corresponding to a user's desired category. Recommendation system.
상기 웹 서비스 표시부는, 상기 검색된 오픈소스 소프트웨어를 사용자가 입력했던 사용자 선택 조건 중 평가 항목의 평가 점수에 기반을 두어 결과를 상기 사용자에게 표시하는 것을 특징으로 하는 오픈소스 소프트웨어 추천 시스템.According to claim 2,
The web service display unit, the open source software recommendation system, characterized in that for displaying the results to the user based on the evaluation score of the evaluation item among the user selection conditions that the user input the searched open source software.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020180148896A KR20200062917A (en) | 2018-11-27 | 2018-11-27 | Open Source Software Recommendation System and Method Using Personal Profiling |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020180148896A KR20200062917A (en) | 2018-11-27 | 2018-11-27 | Open Source Software Recommendation System and Method Using Personal Profiling |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20200062917A true KR20200062917A (en) | 2020-06-04 |
Family
ID=71081111
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020180148896A Withdrawn KR20200062917A (en) | 2018-11-27 | 2018-11-27 | Open Source Software Recommendation System and Method Using Personal Profiling |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20200062917A (en) |
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112084309A (en) * | 2020-09-17 | 2020-12-15 | 北京中科微澜科技有限公司 | License selection method and system based on open source software map |
| KR20230031719A (en) | 2021-08-27 | 2023-03-07 | 위즈코어 주식회사 | Open-source algorithmic recommendation system for auto parts manufacturing company |
| KR20230090112A (en) * | 2021-12-14 | 2023-06-21 | 성균관대학교산학협력단 | Method and device for evaluating open source project code |
| US11836069B2 (en) | 2021-02-24 | 2023-12-05 | Open Weaver Inc. | Methods and systems for assessing functional validation of software components comparing source code and feature documentation |
| US11836202B2 (en) | 2021-02-24 | 2023-12-05 | Open Weaver Inc. | Methods and systems for dynamic search listing ranking of software components |
| US11853745B2 (en) | 2021-02-26 | 2023-12-26 | Open Weaver Inc. | Methods and systems for automated open source software reuse scoring |
| US11893385B2 (en) | 2021-02-17 | 2024-02-06 | Open Weaver Inc. | Methods and systems for automated software natural language documentation |
| US11921763B2 (en) | 2021-02-24 | 2024-03-05 | Open Weaver Inc. | Methods and systems to parse a software component search query to enable multi entity search |
| US11947530B2 (en) | 2021-02-24 | 2024-04-02 | Open Weaver Inc. | Methods and systems to automatically generate search queries from software documents to validate software component search engines |
| US11960492B2 (en) | 2021-02-24 | 2024-04-16 | Open Weaver Inc. | Methods and systems for display of search item scores and related information for easier search result selection |
| US12106094B2 (en) | 2021-02-24 | 2024-10-01 | Open Weaver Inc. | Methods and systems for auto creation of software component reference guide from multiple information sources |
| US12164915B2 (en) | 2021-02-26 | 2024-12-10 | Open Weaver Inc. | Methods and systems to classify software components based on multiple information sources |
| US12197912B2 (en) | 2021-02-26 | 2025-01-14 | Open Weaver Inc. | Methods and systems for scoring quality of open source software documentation |
| KR102762024B1 (en) * | 2024-10-25 | 2025-02-05 | 주식회사 포너즈 | Program developer evaluation system using artificial intelligence |
| CN119621879A (en) * | 2024-11-26 | 2025-03-14 | 重庆大学 | A visual retrieval method for open source projects |
| KR102789052B1 (en) * | 2023-12-28 | 2025-03-31 | 한국해양과학기술원 | Method for generating synthetic dataset for maritime traffic situation awareness |
| US12271866B2 (en) | 2021-02-26 | 2025-04-08 | Open Weaver Inc. | Methods and systems for creating software ecosystem activity score from multiple sources |
| US12277126B2 (en) | 2023-06-30 | 2025-04-15 | Open Weaver Inc. | Methods and systems for search and ranking of code snippets using machine learning models |
-
2018
- 2018-11-27 KR KR1020180148896A patent/KR20200062917A/en not_active Withdrawn
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112084309B (en) * | 2020-09-17 | 2024-06-04 | 北京中科微澜科技有限公司 | License selection method and system based on open source software map |
| CN112084309A (en) * | 2020-09-17 | 2020-12-15 | 北京中科微澜科技有限公司 | License selection method and system based on open source software map |
| US11893385B2 (en) | 2021-02-17 | 2024-02-06 | Open Weaver Inc. | Methods and systems for automated software natural language documentation |
| US11947530B2 (en) | 2021-02-24 | 2024-04-02 | Open Weaver Inc. | Methods and systems to automatically generate search queries from software documents to validate software component search engines |
| US11960492B2 (en) | 2021-02-24 | 2024-04-16 | Open Weaver Inc. | Methods and systems for display of search item scores and related information for easier search result selection |
| US11836202B2 (en) | 2021-02-24 | 2023-12-05 | Open Weaver Inc. | Methods and systems for dynamic search listing ranking of software components |
| US11836069B2 (en) | 2021-02-24 | 2023-12-05 | Open Weaver Inc. | Methods and systems for assessing functional validation of software components comparing source code and feature documentation |
| US11921763B2 (en) | 2021-02-24 | 2024-03-05 | Open Weaver Inc. | Methods and systems to parse a software component search query to enable multi entity search |
| US12106094B2 (en) | 2021-02-24 | 2024-10-01 | Open Weaver Inc. | Methods and systems for auto creation of software component reference guide from multiple information sources |
| US12197912B2 (en) | 2021-02-26 | 2025-01-14 | Open Weaver Inc. | Methods and systems for scoring quality of open source software documentation |
| US12164915B2 (en) | 2021-02-26 | 2024-12-10 | Open Weaver Inc. | Methods and systems to classify software components based on multiple information sources |
| US11853745B2 (en) | 2021-02-26 | 2023-12-26 | Open Weaver Inc. | Methods and systems for automated open source software reuse scoring |
| US12271866B2 (en) | 2021-02-26 | 2025-04-08 | Open Weaver Inc. | Methods and systems for creating software ecosystem activity score from multiple sources |
| KR20230031719A (en) | 2021-08-27 | 2023-03-07 | 위즈코어 주식회사 | Open-source algorithmic recommendation system for auto parts manufacturing company |
| KR20230090112A (en) * | 2021-12-14 | 2023-06-21 | 성균관대학교산학협력단 | Method and device for evaluating open source project code |
| US12277126B2 (en) | 2023-06-30 | 2025-04-15 | Open Weaver Inc. | Methods and systems for search and ranking of code snippets using machine learning models |
| KR102789052B1 (en) * | 2023-12-28 | 2025-03-31 | 한국해양과학기술원 | Method for generating synthetic dataset for maritime traffic situation awareness |
| KR102762024B1 (en) * | 2024-10-25 | 2025-02-05 | 주식회사 포너즈 | Program developer evaluation system using artificial intelligence |
| CN119621879A (en) * | 2024-11-26 | 2025-03-14 | 重庆大学 | A visual retrieval method for open source projects |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20200062917A (en) | Open Source Software Recommendation System and Method Using Personal Profiling | |
| US12072943B2 (en) | Marking falsities in online news | |
| Requena et al. | Shopper intent prediction from clickstream e-commerce data with minimal browsing information | |
| Orphanou et al. | Mitigating bias in algorithmic systems—A fish-eye view | |
| Najafabadi et al. | A systematic literature review on the state of research and practice of collaborative filtering technique and implicit feedback | |
| US7941383B2 (en) | Maintaining state transition data for a plurality of users, modeling, detecting, and predicting user states and behavior | |
| Urbano et al. | Evaluation in music information retrieval | |
| Zhou et al. | Predicting high-risk students using Internet access logs | |
| US20130036121A1 (en) | System and method for recommending blog | |
| CN113468422B (en) | Search method, device, electronic device and storage medium | |
| CN111061979B (en) | User tag pushing method and device, electronic equipment and medium | |
| Jannach et al. | Session-based recommender systems | |
| Yang et al. | Interpretable video tag recommendation with multimedia deep learning framework | |
| US10678831B2 (en) | Page journey determination from fingerprint information in web event journals | |
| Javari et al. | Accurate and novel recommendations: an algorithm based on popularity forecasting | |
| Wilka et al. | How machines learn: where do companies get data for machine learning and what licenses do they need | |
| Lytvyn et al. | An Intelligent System of the Content Relevance at the Ex-ample of Films According to User Needs | |
| Clewley et al. | Cognitive styles and search engine preferences: Field dependence/independence vs holism/serialism | |
| Xie et al. | Disease gene prioritization using network and feature | |
| CN110555163A (en) | Techniques for personalizing application store recommendations | |
| Bashir et al. | Opinion-Based Entity Ranking using learning to rank | |
| Wang et al. | Digital library book recommendation system based on tag mining | |
| Javari et al. | Recommender systems for social networks analysis and mining: precision versus diversity | |
| CN106919589A (en) | Customer problem analysis method and device | |
| KR102876273B1 (en) | System for data extraction of users and vehicle recommendation based on machine learning trained model and the operation method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20181127 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination |