본문 바로가기

자바 텍스트마이닝을 위한 형태소분석-꼬꼬마분석기(Kkma) 설치와 사용 자바 형태소 분석기 - 꼬꼬마분석기 설치와 사용참고: R을 이용한 텍스트마이닝 & 워드클라우드1. 설치링크(다운로드)에서 꼬꼬마 형태소분석기 jar파일을 다운로드 할 수 있다. jar 파일을 다운받고 사용할 자바 프로젝트에서 우클릭 한 후, Build Path-Configure Build Path에 들어간다. (단축키 alt+enter) Libraries에 들어가 add External JARs...를 클릭하고 다운받아놓은 .jar 파일을 추가한다. 프로젝트에 Referenced Libraies 아래 org.snu.ids.ha.jar가 추가되면 성공. 2. 사용사용하기 위해 src아래 main을 포함한 클래스파일을 만들고 테스트를 위해 main() 아래 메소드 maTest()를 추가한다.123456789..
파이썬 협업필터링(Collaborative Filtering), 추천 알고리즘 - 3 파이썬 협업필터링 Collaborative Filtering(3), 상관분석 correlation analysispython 협업필터링(Collaborative Filtering) 추천 알고리즘 - 1python 협업필터링(Collaborative Filtering) 추천 알고리즘 - 2에서 이어집니다. 이전 포스팅에 사용한 유클리디안 거리공식을 활용한 유사도 측정에는 문제점이 있다.특정인물의 점수기준이 극단적으로 너무 낮거나 높다면 제대로 된 결과를 도출해낼 수 없는 것이다. 예를 들어 나에게 영화를 평가할때 일정 기준이 있어 기대를 충족하지 못하면 모두 0점을 주고, 아니면 모두 만점을 주면 전체 데이터를 해치는 결과를 낳는다. 이것을 보완하는 것이 correlation analysis(상관분석) 이..
파이썬 협업필터링(Collaborative Filtering), 추천 알고리즘 - 2 파이썬 협업필터링(Collaborative Filtering), 추천 알고리즘 - 2python 협업필터링(Collaborative Filtering) 추천 알고리즘 - 1 에서 이어집니다. 이전 포스팅에서 사용된 피타고라스 공식을 이용한 유사도도출은 2차원, 즉 비교대상이 2개로 한정되는 한계가 있다.비교대상이 2개라니, 실제 추천 알고리즘을 구현하고자 하는 데이터에서는 사실상 사용될 일이 없다고 할 수 있다. 다차원에서의 거리를 구해 비교대상이 몇 개로 늘어나든 하나의 함수로 비교할 수 있어야 하고, 그에 따른 유사도를 구할 수 있어야 한다. 다차원간 거리를 구하는 데 사용되는 공식들은Euclidean distanceCity-block(Manhattan) distanceMinkowski distanc..
파이썬 협업필터링(Collaborative Filtering), 추천 알고리즘 - 1 파이썬 협업필터링(Collaborative Filtering), 추천 알고리즘 - 1Preview협업필터링이란 많은 사용자들로부터 얻은 기호정보에 따라 사용자들의 관심사를 자동적으로 예측하는 방법이다.넷플릭스, 왓챠 등에서 쓰이는 방법으로 두 사람간 유사도(Similarity)를 구해 예상 평점을 구하고 비슷한 영화를 추천해주는 등의 알고리즘에 사용된다. 협업 필터링에는 유저기반(User-based CF) 과 아이템기반(Item-based CF) 이 존재하는데유저기반(User-based CF) 은 포스팅에 사용될 기법이고아이템기반(Item-based CF) 은 실제 데이터에서 유저 수가 적거나 겹치는 아이템이 적어 유효한 데이터를 뽑아내기 힘들 때 거꾸로 아이템을 기반으로 유사도를 구하는 기법이다. 몇개..
자바 Iterator, Enumeration 인터페이스 자바 Iterator, Enumeration 인터페이스 Iterator는 반복자라는 뜻으로, Iterator 인터페이스는 자료를 얻어내는데 사용한다. 이 자료를 얻어내는 iterator() 메소드는 컬렉션(Collection) 자료형이라면 관계없이 사용가능하다. For문 등으로도 충분히 자료들을 꺼내올 수 있는데, 굳이 Iterator가 필요한 이유는 무엇인가.혹 ArrayList에 담긴 데이터를 Set으로 옮겼다면 일반적으로는 출력문까지 전면 수정이 필요하지만,Iterator는 데이터를 빼오는 방식을 표준화하는데 그 목적이 있기 때문에 코드의 재활용이 가능하다.(다형성) Iterator 인터페이스에서 쓰이는 메소드는 크게 3개다. hasNext() : 뒤에 남은 데이터가 있으면 True, 없으면 Fal..
자바 HashMap, LinkedHashMap, TreeMap 자바 HashMap, LinkedHashMap, TreeMap​ HashMap은 그 안에 들어있는 데이터를 Set 구조(key,value)로 저장하기 때문에,Set의 원칙대로 중복된 데이터를 허락하지 않으면서 순서가 없다. 쉽게말해 사전(dictionary)과 같다고 생각하면 된다. (python에서 dictionary라는 자료형이 대응됨)사전에서 단어를 통해 뜻을 찾듯이, hashmap에서는 key를 이용해 value를 꺼내온다. Map에는 3가지 종류가 있다.먼저 hash값에 의해 키순서가 정해지는 HashMap이다. 출력엔 순서가 없다. HashMap hashmap = new HashMap();(제네릭스도 넣어 주어야 함) hash값이 도대체 무엇인가? hash는 '으깨다'라는 뜻으로, Hash는 ..
자바 Math 자바 Math 여러 수학적 계산을 편리하게 해주는 Math의 메소드들을 소개한다. Math.pow(double a, double b) : a의 b제곱을 구해준다. 리턴도 double형이라 보통은 앞에 (int)를 붙여준다. System.out.println("제곱 >>>>>>>>>> "+(int)Math.pow(2, 3)); 제곱 >>>>>>>>>> 8 Math.sqrt(double a): a의 제곱근(루트)를 구해준다. 역시 리턴은 double이다. System.out.println("제곱근 >>>>>>>> "+Math.sqrt(3)); 제곱근 >>>>>>>> 1.7320508075688772 Math.round(double a): a를 반올림해준다. System.out.println("Round >>..
자바 StringBuffer, StringBuilder 자바 StringBuffer, StringBuilder StringBuilder와 StringBuffer는 자바 내에서 변하는 문자열을 처리하기 위해 사용된다.가변의 성질을 가져 객체 생성을 한 번 하면 내부적으로 데이터를 변경하고 객체를 재활용하기 때문이다. String 메소드 포스팅에서 잠깐 언급했지만 String 객체는 불변이라 연산 등으로 변화할 때마다 새로운 객체를 생성해낸다. (String/StringBuffer/StringBuilder 성능비교 포스팅 참조) StringBuilder는 StringBuffer와 같지만 동기화 처리를 지원하지 않아 좀더 빠르며, 사용되는 메소드는 같다. 멀티쓰레드 상황이면 동기방식인 StringBuffer를 쓰고, 아니라면 싱글쓰레드라면 비동기방식인 String..