본문 바로가기
반응형

text78

문서 요약 하기 (with textrank) 구글은 pagerank 라는 알고리즘을 통해 검색의 품질을 높혔다. pagerank 알고리즘을 설명해보자면 "더 중요한 페이지는 더 많은 사이트로부터 링크를 받는다" 는 관찰에 기조해 만들어진 알고리즘이다. 위키피디아에 써져있는 예를 보자면 페이지 A가 페이지 B,C,D 로 총 3개의 링크를 걸었다면 B는 A의 페이지 랭크 값의 (1/3) 만큼을 가져온다(?) 풀어서 써보자면 특정 페이지 A 에 B, C, D 의 링크를 걸었다면 ( B 페이지의 중요도(pageRank) + C 페이지의 중요도 + D 페이지의 중요도 ) / 3(=A페이지에 걸린 링크 수) 의 페이지 중요도 (pageRank A)를 가지게 되는 것이다. 또 알고리즘은 인터넷 서핑하는 가상의 인물(random surfer)를 정의 하고, 해당.. 2021. 10. 23.
log4j2 executable jar에 적용하기 회사에서 특정시간마다 동작하는 모듈을 만들어야 됐다. 해당 모듈의 특징은 한번 동작할때 멀티쓰레드(implements Runnable) 를 적용해 여러개의 작업이 동시에 이루어지고 완료된다는 점이다. 이전까지는 각 쓰레드 별로 작업이 정상적으로 완료되었는지를 지정된 폴더에 파일로 각자 적게끔 구현했다. (로그 파일을 직접생성하는 것이다. 게다가 Thread safe 하게끔 각자...) 그러다가 문득 "내가 왜 직접 파일에 하나씩 적게 만들지...?" 하는 생각이 들어서 좀더 괜찮게 기록하는 방법이 없을까 찾아봤다. 구글링 했을때 가장 먼저 나오는 로그 관련 라이브러리로 log4j가 있었다. (지금은 log4j2가 가장 최신버전이라고 한다.) 다른 라이브러리 사용시 나는 보통 프로젝트내 "lib" 폴더 생.. 2021. 10. 17.
뉴스 문서 군집화 하기.ver2 ( document clustering using Minhash & LSH) 두 문서의 유사도는 문서에 나타난 요소들 (ex. 음절, 어절, 형태소) 을 집합 형태로 만들어 집합간의 비교로 치환해 비교할 수 있다. 문서1 = "나는 밥을 먹었다. 나는 학교에 갔다." 문서2 = "나는 밥을 먹었고, 학교에 갔다." 두 문서가 존재 할때 두 문서를 어절 단위(띄어쓰기로 나눠서) 집합으로 변경시켜보면 문서1_집합 = { '나는', '밥을', '먹었다.', '학교에', '갔다.' } 문서2_집합 = { '나는', '밥을', '먹었고,', '학교에', 갔다.' } 이때 두 문서의 유사성을 비교할때 여러 방법들이 존재하지만 이번 글에서는 자카드 유사도(Jaccard similarity) 라는 방법을 이용한다. 자카드 유사도 ⇒ https://ko.wikipedia.org/wiki/자카드_.. 2021. 10. 15.
날짜 문자열 regex로 제거 정리글 기사 나 블로그 보면 제목에 날짜를 집어넣는 경우가 있다. (ex. 202X년 X월 X일 시황) 날짜는 굳이 필요없을때 제거할려고 regex 사용했다. 기사나 블로그 제목들 전부를 살펴본건 아니지만 자주 등장하는 패턴을 눈으로 보고 대충 정리하자면 년월일 들어간 경우 21년8월25일 2021년 8월 25일 8월 25일 년월일 대신 기호를 넣는경우 21.8.25 or 21.08.25 or 08.25 21-8-25 or 21-08-25 or 08-25 21/8/25 or 21/08/25 or 08/25 아무것도 없는 경우 20210825 or 21825 이정도로 대충 등장하는걸 확인할 수 있었다. 자주 찾아보는 regex 문법 사이트는 https://wikidocs.net/4308 07-2 정규 표현식 시작.. 2021. 9. 7.
python dictionary sort 정리 (sort by key & value) 매번 헷갈리고 알고리즘 문제 풀때마다 찾아보길래 이번 기회에 블로그에 적음으로 찾는 수고를 덜고자 한다. 프로그래머스에서 이번에 위클리 챌린지라고 leetcode에서 하는것 처럼 매주 문제 하나씩 내는데 4주차 문제에서 dictionary를 sort해야하는 문제가 나왔다. 3주차는 어려워서 건너뛰고 4주차 풀었다. 내가 생각하는 이 문제의 제일 중요한 부분은 dictionary 자료형의 sort 부분이다. 2번에 대해 자세히 서술해보면 구글에 "python dictionary sort" 를 검색했을때 가장 많이 나오는 답으로는 sort by value 다. value값 크기 대소를 통해 sort 하는 방법이다. # sort by value Ascending result = sorted(dictionary.. 2021. 8. 24.
polynomial regression 사용해보기 (with js) 회사 일 중에 시간별 수량 값을 그래프로 시각화 할 일이 생겼다. 뭐 어찌저찌 열심히 코드 짜서 (d3+c3 chart 이용) 그래프를 그렸더니 (예측 선 + 신뢰구간 추정)도 존재했으면 좋겠다! 라고 위에서 요청이 와서 다시 수정... 일단 잘 모르니 구글에 검색해보자... 추세 예측... 1. 예측 선 forecast 방법을 찾아보니 선형회귀 방법을 쓰라고 나온다. 선형회귀라 하면 학부생 2학년때 파이썬 처음 배우면서 배웠던 기억이 있는데 정확히 기억은 안나고, 코드 따라치면서 왜 배우는지 모르겠다 욕했던 것만 기억난다. 각설하고 간단하게 선형회귀는 기존 기간의 값이 이랬으니 -> 새로운 기간의 값은 이럴 것이다. 라고 새로운 값을 추측하기 위해 쓴다고 한다... 더 자세한 설명은 https://kn.. 2021. 7. 2.
java excel read 문제 해결 (XSSFWorkbook heap space OOM) 이전 포스트 했던 excel 관련해 발생한 문제가 있어 정리 해보려고 한다. java excel 처리 정리 java excel 처리 정리 매번 엑셀을 java로 읽을때마다 찾아보는게 귀찮아서 정리한다. 사용 모듈 apache poi jar 리스트 - poi-3.11.jar - poi-ooxml-3.11.jar - poi-ooxml-schemas-3.11.jar - xmlbeans-2.6.0.jar 1. 엑셀 파일 .. hoonzi-text.tistory.com 문제는 특정 엑셀 파일의 경우, 파일을 열다가 java.lang.OutOfMemoryError: Java heap space 문제가 발생했다. 나는 apache tomcat에 jsp를 이용한 간단한 파일 업로드/다운로드 페이지를 만들어 놓은 것이였.. 2021. 5. 7.
뉴스 문서 군집화 하기 (document clustering with DBSCAN) 문서 클러스터링 해보려고 한다. 순서는 1. 데이터 모으기 2. 데이터를 분류 가능하게 변환하기 3. 변환된 데이터 분류하기 로 단순화 시킬 수 있다. 사용한 모듈의 경우 다음과 같다. - python 3.7 - requests, BeatifulSoup => 데이터 모으기 위해 사용 - pandas => 모은 데이터를 좀더 보기 편하게 바꾸거나, 저장하기 위해 사용 - Konlpy(Okt) => 데이터 정제할때 사용 - sklearn => 클러스터링 작업때 사용 1. 데이터 모으기 저번엔 NAVER 에서 데이터를 뽑았으니, 이번엔 DAUM에서 데이터를 뽑아보자 네이버 영화평 가져오기 네이버 영화평 가져오기 네이버 영화평 가져오기 설명 들어가기 전 네이버의 robots.txt 에 대해 먼저 숙지하자. 사용.. 2021. 4. 28.
문장 생성 해보기 with. mini-GPT (feat. 네이버 기사 댓글) 저번 문장 생성의 경우 RNN의 하나인 GRU를 이용해 문장을 생성해보았다. 문장 생성 해보기 (feat. 네이버 기사 댓글) 문장 생성 해보기 (feat. 네이버 기사 댓글) 이전 글을 통해 가져온 데이터를 이용해보자 가져온 데이터를 이용해 문장을 생성할 것이다. 1. 네이버 영화평 가져오기 네이버 영화평 가져오기 네이버 영화평 가져오기 설명 들어가기 전 네이 hoonzi-text.tistory.com 이번엔 언어 모델계 강력한 모델인 GPT...는 아니고, GPT구조를 간략하게 만든 mini-gpt를 이용해 문장을 생성해보려고 한다. GPT를 이해하기 위해서는 이해해야 하는 선행 개념들이 있다. 여러 블로그와 글들을 참고해서 나름의 정리를 하는데 틀릴수 있으니 걸러서 보면된다. attention이 뭔.. 2021. 4. 21.
반응형