본문 바로가기
728x90
반응형

분류 전체보기190

사용자간 유사도를 활용한 협업필터링 추천 예제 지난 장에서 가장 기본적인 예제를 통해서 사용자 간의 유사도를 구해보는 작업을 하였다. 이번 장에서는 사용자들 간의 유사도를 바탕으로 모든 항목에 대해서 예측값을 계산하고, 높은 예측 값을 갖는 상위 N개의 추천 목록을 생성하는 작업을 해보도록한다. KNN 가중치 예측 기법 예제 풀이 방법 1. 대상과 가장 유사도가 높은 k의 대상의 영화 평점과 유사도를 통해 추측평점(유사도 x (타인의)영화평점)을 구한다. 2. 추측평점의 총합을 구한다. 3. (추측평점 총합계)/(유사도 합계) 계산을 통해 예상평점을 뽑아낼 수 있다. 협업 필터링의 구성 1. 메모리 기반 1.1 사용자 기반 2019. 11. 24.
사용자간 유사도 계산 1. 가장 높은 평점을 갖는 아이템을 추천하는 가장 단순한 방법을 연습합니다. ratings={ 'Dave':{'달콤한인생':5,'범죄도시':3,'샤인':3}, 'David':{'달콤한인생':5,'범죄도시':1,'샤인':4}, 'Alex':{'달콤한인생':0,'범죄도시':4,'샤인':5}, 'Andy':{'달콤한인생':2,'범죄도시':1,'샤인':5} } movies_dict = dict() for rating in ratings: for movie in ratings[rating].keys(): if movie not in movies_dict: movies_dict[movie] = ratings[rating][movie] else: movies_dict[movie] = (movies_dict[movi.. 2019. 11. 23.
python 필기/노트 공부하다가 몰랐거나 유용한 것들에 대한 필기 ! 딕셔너리(dictionary) 딕셔너리는 다음과 같이 선언하고 key값과 value값의 형태로 만들어주는 자료구조이다. a = dict() a['market'] = {'fruit':"apple", 'drink':'beer'} a.get('market').get('fruit') # 결과: "apple" update: 딕셔너리와 딕셔너리를 합쳐서 하나의 딕셔너리를 만들 때 사용하는 함수 d = {1: "one", 2: "three"} d1 = {2: "two"} # updates the value of key 2 d.update(d1) print(d) d1 = {3: "three"} # adds element with key 3 d.update(d1) prin.. 2019. 11. 23.
추천시스템 개념 위키피디아에서의 추천시스템; 정보 필터링(Information Filtering)기술의 일종으로, 특정 사용자가 관심을 가질만한 정보(영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것이다. 추천시스템의 종류에는 현재 가장 많이 사용하는 협업필터링(Collaborative filtering) 기법이 있고, 이외에 콘텐츠 기반 필터링(Content-based filtering), 하이브리드 추천시스템(Hybrid recommender systems) 등이 있다. 1. Collaborative filtering: 협업 필터링이라고 불리는 이 필터링 기법은 우선 위키피디아의 정의를 보면 사용자의 행동, 활동 또는 선호도에 대한 많은 정보를 분석하고 모으고 다른 사용자와의 비슷함에 기초를 두고 사.. 2019. 11. 23.
코사인 유사도를 활용한 유사 문서 검색 저번에 크롤링한 데이터를 그대로 사용하여 코사인 유사도를 구해보도록 하겠습니다. 우선 저번에 사용한 코드 그대로 사용하여 데이터를 수집해와서 전처리까지 동일하게 진행해주었습니다.(전처리에 기자이름을 제거하는 것을 추가하였습니다. 기자 이름때문에 유사성이 전체적으로 높게 측정되기 때문입니다.) import requests import re from bs4 import BeautifulSoup url="https://news.naver.com/main/main.nhn?mode=LSD&mid=shm&sid1=" category=[100,101,102,103,104] #정치, 경제, 사회, 생활/문화 news_url_list=[] headline=[] for i in category: home = url+str.. 2019. 11. 22.
뉴스 기사 분류 크롤링을 하여 뉴스 기사를 수집하였다면 이제 그 뉴스를 카테고리별로 분류하는 작업을 해봅니다. 각 웹페이지에 등장하는 헤드라인 뉴스 기사 제목(url주소)을 카테고리별로 모두 수집합니다 웹페이지의 뒷부분의 숫자를 기준으로 보통 페이지 수를 매기곤 합니다. 사이트마다 변형이 불규칙인 것도 있으니 규칙성을 잘 보셔야합니다. 규칙없이 이뤄진 경우에는 for문을 적용하기 힘들수도 있습니다. 카테고리 별 네이버 뉴스 웹페이지 주소 입니다. 네이버 뉴스는 다행히도 규칙적인 숫자로 웹페이지 주소가 할당되어 있었습니다. import requests from bs4 import BeautifulSoup url="https://news.naver.com/main/main.nhn?mode=LSD&mid=shm&sid1=" .. 2019. 11. 22.
728x90
반응형