본문 바로가기

전체 글244

[텍스트 마이닝] 감정 분석 - [실습] IMDB 영화평 분석 * IMDB 영화평 데이터 : 정답을 가지고 있는데이터지도학습 기반 감성분석데이터 로딩 및 확인import pandas as pdreview_df = pd.read_csv('./labeledTrainData.tsv',header= 0, sep='\t')print(review_df.shape)%alias_magicreview_df.head()(25000, 3) review_df['review'][0]"With all this stuff going down at the moment with MJ i've started listening to his music, watching the odd documentary here and there, watched The Wiz and watched Moonwalker.. 2024. 8. 1.
[텍스트 마이닝] 텍스트 분석 -2 [실습] 20 뉴스 그룹 분류 텍스트 데이터 확인from sklearn.datasets import fetch_20newsgroupsimport numpy as npnews_data = fetch_20newsgroups(subset='all', random_state= 100) # subset='all' 훈련데이터와 평가데이터 모두print(np.unique(news_data.target))# 20개의 카테고리에 해당하는[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]print(type(news_data))print(np.array(news_data.data).shape)(18846,) import pandas as pdprint('target 클래스')print(dict(.. 2024. 8. 1.
[텍스트 마이닝] 텍스트 분석 -1 (전처리 작업) 토큰화패키지 다운!pip install nltk# nltk site: https://www.nltk.org NLTK :: Natural Language ToolkitNatural Language Toolkit NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing librarieswww.nltk.orgfrom nltk import sent_tokenizeimport nl.. 2024. 8. 1.
[머신러닝] 추천 시스템 알고리즘 - 잠재요인 협업 필터링 경사하강법을 이용한 행렬 분해SVD(Singular Value Decomposition)는 NaN 값이 없는 행렬에만 적용할 수 있다. R 행렬(사용자-영화 평점 행렬)은 평점되지 않은 많은 NaN 값이 있기 때문에 P(사용자-잠재요인 행렬)와 Q(잠재요인-아이템 행렬) 행렬을 일반적인 SVD 방식으로 분해할 수 없다. 행렬 분해 로직 함수R(m x n) = P(m x K) * Q.T(K x n) [ m: user 수, n: 아이템 수, K: 잠재요인 수 ] R : 사용자-영화 평점 행렬 P : 사용자-잠재요인 행렬 (초기 값은 랜덤 값으로) Q : 잠재요인-아이템 행렬 (초기 값은 랜덤 값으로)행렬 분해 함수 매개변수R: 사용자 - 아이템 평점 행렬 (실제 평점 값을 갖는 행렬) K: 잠재요인 차원 수.. 2024. 8. 1.
[머신러닝] 추천 시스템 알고리즘 - 아이템 기반 최근접 이웃 필터링 데이터 셋 다운로드사용자-영화 평점 행렬 데이터 필요 Grouplens 사이트에서 만든 MoviesLens 데이터 셋 사용 (축소 버전 사용) https://grouplens.org/datasetsmovielens/latestimport numpy as npimport pandas as pdmovies = pd.read_csv('./dataset/movies.csv')ratings = pd.read_csv('./dataset/ratings.csv')print(movies.shape)print(ratings.shape)(9742, 3)(100836, 4) movies.head() ratings.head() 영화 평점에 참여한 전체 인원수 확인ratings['userId'].unique().size # 전체.. 2024. 8. 1.
[머신러닝] 추천 시스템 알고리즘 - 콘텐츠 기반 필터링 추천시스템추천 시스템은 정보 필터링 (IF) 기술의 일종으로, 특정 사용자가 관심을 가질만한 정보 (영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것이다. 추천 시스템에는 협업 필터링 기법을 주로 사용한다. 소셜 북마크 사이트에서 링크를 사람들에게 추천하고 무비렌즈 데이터 세트에서 영화를 추천하는 방법등이 이에 속한다.크게 콘텐츠 기반 필터링(content based filtering) 방식과 협업 필터링(collaboration filtering) 방식으로 나뉜다. 추천 시스템 종류1. 콘텐츠 기반 필터링사용자가 한 아이템을 선호하는 경우 그 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천하는 방식이다.예를 들어, 한 사용자가 특정 영화에 높은 평점을 주었다면 그 영화의 장르, 감독,.. 2024. 8. 1.
[프로그래머스 / 파이썬] 자릿수 더하기 , 문자열 내 p와 y의 개수 1. 문제설명 : 자릿수 더하기 다른 사람의 풀이return number%10 + sum_digit(number//10)나의 풀이for i in str(n) : answer += int(i)처음엔 / 와 % 로 풀었는데 그러면 몫을 가져올때 소수점이 남는 문제가 있었다.다른 분들의 풀이를 보며 // 가 있었다는 것을 다시 한 번 상기할 수 있게 됐다.  2. 문제 설명 : 문자열 내 p와 y의 개수 다른 사람의 문제 풀이def solution(s): return s.lower().count('p') == s.lower().count('y')나의 문제 풀이def solution(s): answer = True count_p = 0 count_y = 0 for w in s.. 2024. 7. 24.
[ckeditor 5, spring] 두 개의 테이블이 있을 때 editor 내용 db로 보내기 두 개의 테이블을 from 이라는 구분자를 두고 한 페이지에서 받으려고 한다.1. 첫 실수 from 을 controller에 같이 보내지 않은 것HTML @Controller@GetMapping("/write") public String write( Model model ) { if ("qna".equals(from)) { log.info("qna 글쓰기"); } else if ("review".equals(from)) { log.info("review 글쓰기"); } model.addAttribute("from", from); return "/guest/write"; } 이렇게 해서.. 2024. 6. 23.
[java, thymeleaf] java.lang.IllegalArgumentException java.lang.IllegalArgumentException : Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause해결방법build.gradle 에 추가하기compileJava { options.compilerArgs  controller 에서 @RequestParam 안에 사용할 value 값 넣어주기@GetMapping("/write")public String write( @RequestParam(valu.. 2024. 6. 21.