-
[Pickmeup Web Project] 간단하게 핫한 태그 추천 알고리즘 만들기(2)Backend/Spring 2020. 7. 18. 20:44
이전 포스팅에서 구현하기로 했던 태그 스코어링 java로 간단 구현!
나는 스프링 프로젝트로 개발 중이라 그냥 스프링 위에다가 구현해봤다.
Code
package com.example.tagscoring; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import javax.annotation.processing.SupportedSourceVersion; @SpringBootApplication public class TagscoringApplication { public static void printArraylist(double[] a) { for(int i=0; i<a.length; i++) { System.out.println(a[i]); } } public static double calcEuclideanDist(double[] p1, double[] p2) { double sum = 0; double dist; for (int i = 0; i < p1.length; i++) { sum += Math.pow(p1[i] - p2[i], 2); } dist = Math.sqrt(sum); return dist; } public static double[] normalization(double[] p, double[] min_p, double[] max_p) { double[] norm_p = new double[p.length]; for (int i = 0; i < p.length; i++) { double norm_i; // normalize norm_i = (p[i] - min_p[i]) / (max_p[i] - min_p[i]); // append normalized number norm_p[i] = norm_i; } return norm_p; } public static void main(String[] args) { SpringApplication.run(TagscoringApplication.class, args); /* 1. 태크 스코어 */ // p1 포맷 = {해쉬태그가 사용된 사용된 게시물 개수, 해쉬태그를 사용한 게시물의 댓글수 총합, 해쉬태그를 사용한 게시물의 조회수 총합} double[] p1 = {100, 2000, 6000}, origin = {0, 0, 0}; double[] min_p1 = {0, 0, 0}, max_p1 = {400, 4200, 10000}; double score; System.out.println("* point => "); printArraylist(p1); System.out.println(); // p1 정규화 p1 = normalization(p1, min_p1, max_p1); System.out.println("* normalized point => "); printArraylist(p1); System.out.println(); // p1과 원점 사이의 유클리디안 거리 계산 score = calcEuclideanDist(p1, origin); System.out.println("* score = " + score); } }
Out:
* point =>
100.0
2000.0
6000.0
* normalized point =>
0.25
0.47619047619047616
0.6
* score = 0.8057650833924938'Backend > Spring' 카테고리의 다른 글