|
1 | 1 |
|
| 2 | + |
2 | 3 | <div align="center"> |
| 4 | + <a href="https://github.com/osamhack2021/AI_APP_handylib_devlib"> |
| 5 | + <img src='https://user-images.githubusercontent.com/42088290/137695537-0f08fc63-1e5d-4f3c-80e2-966ce9e9db13.png' width ='80' height='80'/> |
| 6 | + </a> |
3 | 7 |
|
4 | 8 | <h3 align="center">내 손 안의 진중문고, HandyLib</h3> |
5 | | - |
6 | 9 | <p align="center"> |
7 | 10 | 진중문고를 내 손안으로! |
8 | 11 | <br /> |
9 | 12 | <a href="https://www.notion.so/DevLib-0960a793aa544b2bbc3038d309ad2c47"><strong>개발 문서</strong></a> |
10 | 13 | <br /> |
11 | 14 | <br /> |
12 | | - <a href="https://www.projectlib.tk">View Demo site</a> |
| 15 | + <a href="https://www.projectlib.tk">서버 사이트</a> |
13 | 16 | </p> |
14 | 17 | </div> |
15 | 18 |
|
16 | 19 | <span>Readme 목차</span> |
17 | 20 | <ol> |
18 | 21 | <li> |
19 | | - <a href="#about-the-project">AI (recommendation)</a> |
| 22 | + <a href="# AI (recommendation)">AI (recommendation)</a> |
| 23 | + </li> |
| 24 | + <li> |
| 25 | + <a href="# AI (recommendation)">책 추천시스템</a> |
| 26 | + </li> |
| 27 | + <li> |
| 28 | + <a href="# AI (recommendation)">취향정보 시각화</a> |
20 | 29 | </li> |
21 | 30 | <li> |
22 | 31 | <a href="#getting-started">시작하기</a> |
23 | 32 | <ul> |
24 | 33 | <li><a href="#prerequisites">요구사항</a></li> |
25 | 34 | <li><a href="#installation">설치</a></li> |
| 35 | + <li><a href="#installation">설정</a></li> |
| 36 | + <li><a href="#installation">사용법</a></li> |
26 | 37 | </ul> |
27 | 38 | </li> |
28 | | - <li><a href="#usage">사용법</a></li> |
| 39 | + <li><a href="#usage">발전 방향</a></li> |
29 | 40 | <li><a href="#license">라이센스</a></li> |
30 | 41 | <li><a href="#contact">개발자 정보</a></li> |
31 | 42 | </ol> |
|
34 | 45 |
|
35 | 46 |
|
36 | 47 |
|
37 | | -# AI (recommendation) |
| 48 | +# 1. AI (recommendation) |
38 | 49 | AI에서는 개인별 책 추천시스템과 사용자의 취향정보 시각화를 담당하였습니다. |
39 | 50 |
|
40 | | -추천시스템 개발과정 및 보다 자세한 설명을 원하신다면 아래 링크에서 개발문서를 확인해주시기 바랍니다. |
| 51 | +추천시스템 개발과정과 보다 자세한 설명을 원하신다면 링크에서 AI 파트의 개발문서를 확인해주시기 바랍니다. |
| 52 | +[AI [recommender system]](https://www.notion.so/recommender-system-e97a10b6db184d2aabb2f67b3eac3b85) |
41 | 53 |
|
42 | | -[notion](https://www.notion.so/recommender-system-e97a10b6db184d2aabb2f67b3eac3b85) |
| 54 | +# 2. 책 추천시스템 |
| 55 | +서버에서 사용자 및 책 정보를 요청하여, Matrix Factorization 기반 추천 리스트 30권을 생성합니다. |
43 | 56 |
|
44 | | -## 책 추천시스템 |
45 | | -서버에서 사용자 및 책 정보를 요청하여, Matrix Factorization 기반 추천 리스트를 생성합니다. |
| 57 | +API_test_users.csv : userid_0의 like는 [1247, 164, 89, 1219, 903]입니다. |
46 | 58 |
|
47 | | -## 취향정보 시각화 |
| 59 | ++ 1247 : 국내도서>수험서/자격증>공무원 수험서>소방공무원(승진)>기타 과목 |
| 60 | ++ 164 : 국내도서>사회과학>국방/군사학>국내외 군사사정 |
| 61 | ++ 89 : 국내도서>자기계발>성공>성공담 |
| 62 | ++ 1219 : 국내도서>자기계발>성공>성공담 |
| 63 | ++ 국내도서>전집/중고전집>창작동화 |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | +userid_0.csv에 나온 추천도서는 [1030, 1413, 626, 1150, 167] 등 30권입니다. |
| 68 | + |
| 69 | ++ 1030 : 조선왕조실톡 6 - 조선의 두 번째 영광 (국내도서>역사>조선사>조선후기(영조~순종)) |
| 70 | ++ 1413 : 삶의 덫에서 벗어나 새로운 나를 열기 (국내도서>자기계발>힐링>마음 다스리기)) |
| 71 | ++ 626 : 숲, 다시 보기를 권함 (국내도서>과학>생명과학>생태학) |
| 72 | ++ 1150 : 회사에서 나만 그래? - 언니들이 알려주는 조직생활 노하우 26 (국내도서>자기계발>여성의 자기계발) |
| 73 | ++ 167 : 우린 다르게 살기로 했다 - 혼자는 외롭고 함께는 괴로운 사람들을 위한 마을공동체 탐사기 (국내도서>사회과학>사회운동>사회운동 일반) |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | +# 3. 취향정보 시각화 |
48 | 78 | 사용자가 좋아요를 누른 책을 기반으로 사용자가 좋아하는 카테고리를 wordcloud로 시각화합니다. |
49 | 79 |
|
50 | | -# 시작하기 |
| 80 | + |
| 81 | + |
| 82 | +# 4. 시작하기 |
51 | 83 | ## 요구사항 |
52 | 84 | - wordcloud==1.8.1 |
53 | 85 | - pandas==1.3.3 |
54 | 86 | - numpy>=1.19.5 |
55 | | -- apscheduler==3.8.0 |
| 87 | + |
| 88 | +/var/www/python_flask/ 경로에서 다음 코드를 실행하여 필요한 모듈을 설치합니다. |
| 89 | +```buildoutcfg |
| 90 | +$ pip install pandas |
| 91 | +$ pip install numpy |
| 92 | +$ pip install wordcloud |
| 93 | +``` |
56 | 94 |
|
57 | 95 | ## 설치 |
| 96 | +backend에서 구성한 환경에서 /var/www/main/ 경로에 다음과 같이 파일을 생성합니다. |
| 97 | +추천리스트와 이미지가 저장되는 이해를 돕고자 (괄호)로 예시를 들어 설명하였습니다. |
| 98 | + |
| 99 | +recommendation 경로는 github 상에서 AI 경로에 해당합니다. |
| 100 | + |
| 101 | +/main/api/ 경로에는 BE에서 api를 구현한 파일이 있으며, 추천시스템과 취향정보 이미지가 필요할 때 /main/recommendation/에서 필요한 모듈을 호출하여 사용합니다. |
58 | 102 | ### Directory |
59 | | -+ recommendation |
| 103 | ++ main |
| 104 | + + recommendation |
60 | 105 | + ALS.py |
61 | | - + example_file_path |
62 | | - + recommend_list |
63 | | - + admin.csv |
64 | | - + abcd.csv |
65 | | - + img |
66 | | - + admin.png |
67 | | - + abcd.png |
68 | | - + APP_test_books.csv |
69 | | - + APP_test_users.csv |
70 | | - + rec_pred_score_1.csv |
71 | | - + random_user_generator.py (testcase generator) |
72 | | - + readme.md |
| 106 | + + recommend_list |
| 107 | + + (admin.csv) |
| 108 | + + (abcd.csv) |
| 109 | + + APP_test_books.csv |
| 110 | + + APP_test_users.csv |
| 111 | + + rec_pred_score_1.csv |
| 112 | + + random_user_generator.py |
73 | 113 | + recommendation.py |
74 | 114 | + update.py |
| 115 | + + data_update.py |
75 | 116 | + wordcloud_maker.py |
76 | | - + requirements.txt |
77 | | - |
78 | | - |
79 | | - |
80 | | - |
81 | | - |
82 | | -# Test |
83 | | -테스트 사용법은 다음과 같습니다 |
84 | | - |
| 117 | + + api |
| 118 | + + static |
| 119 | + + img |
| 120 | + + (admin.png) |
| 121 | + + (abcd.png) |
| 122 | + |
| 123 | +## 설정 |
| 124 | +개발 환경에 맞추어 경로, 파일명 변수를 변경해주셔야 합니다. |
| 125 | + |
| 126 | +file_path는 recommendation에 해당하는 경로를 의미합니다. |
| 127 | +책, 사용자 정보를 담은 파일, 추천리스트와 취향분석 이미지를 생성하는 코드가 저장된 경로를 적어주시면 됩니다. |
| 128 | +```buildoutcfg |
| 129 | +# 개인 PC에서 실행할 경우 |
| 130 | +file_path = 'C:/Users/admin/Documents/osam_ai/book_dataset/' |
| 131 | +
|
| 132 | +# 서버 venv에서 실행할 경우 |
| 133 | +file_path = '/var/www/python_flask/recommendation/' |
| 134 | +``` |
| 135 | +github로 공유하는 파일 외에 별도로 파일을 만들어 사용하고 싶다면, 파일명 변수도 수정해야 합니다. |
85 | 136 | ``` |
86 | | -$ python test.py |
| 137 | +user_file_name = 'API_test_users.csv' |
87 | 138 | ``` |
88 | 139 |
|
89 | 140 | # Contributing |
|
0 commit comments