spring-boot
jpa
sks's Introduction
sks's People
sks's Issues
화면 구성
액티비티
1번 페이지
name, image, description
2번 페이지
- wordCloud + 긍정적 데이터(+) / 부정적 데이터(-)
스팩트럼
3번 페이지
- 뉴스 history
- 연도별로 브랜드 관련 기사를 보여주기
쇼핑몰 페이지
open api
jpa 연동
sks-api jpa 연동
swagger-ui 적용
test 기능개발
Brand News API 문서
API 문서
- 모든 분석 자료는 dt기준으로 취합된다.
- Related Swagger
브랜드 긍정 뉴스 리스트
개요
- 브랜드와 연관된 기사 본문에 긍정 단어가 파악 될 시, 관련 뉴스 리스트를 리턴
- 해당 뉴스에 대한 고유 정보 및 url을 포함한다.
요청 URL
https://brand_news.com/analyze/access_news_list/good
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"brand_name" : "한국언론진흥재단",
"brand_key" : "news_41230",
"date_time" : "20190509"
"date_type" : "daily",
"top_count" : "5"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
brand_name | x | ${brand_name} |
브랜드 대표 상호명 부 상호명은 노출하지 않음 |
brand_key | x | ${brand_key} |
브랜드를 판별하는 키 값 |
date_time | o | YYYYMMDD |
조회할 시간 선택 |
date_type | o | weekly or daily |
조회할 시간의 타입 선택 |
top_count | o | 1 <= x <= 20 |
받을 긍정 뉴스 리스트 수 |
- brand_name이나 brand_key의 경우 무조건 하나는 정확히 정의되어야 한다.
date_type
의 경우 주단위 분석 결과(weekly), 일단위 분석 결과(daily) 설정이 가능하다.
응답 형식
{
"pos_news_ids" : [
{
news_id : "news_1",
news_pos_keywords : ["자선", "기부", ...]
news_url : "http://www.naver.com",
news_content : "뉴스 본문에 대한 정보를 리턴합니다...",
},
{
news_id : "news_2",
...
}
],
"brand_name" : "한국언론진흥재단",
"date_time" : "20190509",
}
응답 상세
key | value | Description |
---|---|---|
pos_news_ids | json_array |
받을 뉴스 리스트 배열 |
news_id | ${news_id} |
해당 뉴스의 고유 번호(openAPI 사용) |
news_pos_keywords | json_array |
해당 뉴스에서 검출된 긍정 단어 리스트 |
news_url | HTTP_URL |
해당 뉴스 링크 정보 |
news_content | ${text} |
뉴스 본문 정보, 최대 200자 제한 |
브랜드 부정 뉴스 리스트
개요
- 브랜드와 연관된 기사 본문에 부정 단어가 파악 될 시, 관련 뉴스 리스트를 리턴
- 해당 뉴스에 대한 고유 정보 및 url을 포함한다.
요청 URL
https://brand_news.com/analyze/access_news_list/bad
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"brand_name" : "한국언론진흥재단",
"brand_key" : "news_41230",
"date_time" : "20190509"
"date_type" : "daily",
"top_count" : "5"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
brand_name | x | ${brand_name} |
브랜드 대표 상호명 부 상호명은 노출하지 않음 |
brand_key | x | ${brand_key} |
브랜드를 판별하는 키 값 |
date_time | o | YYYYMMDD |
조회할 시간 선택 |
date_type | o | weekly or daily |
조회할 시간의 타입 선택 |
top_count | o | 1 <= x <= 20 |
받을 부정 뉴스 리스트 수 |
- brand_name이나 brand_key의 경우 무조건 하나는 정확히 정의되어야 한다.
date_type
의 경우 주단위 분석 결과(weekly), 일단위 분석 결과(daily) 설정이 가능하다.
응답 형식
{
"neg_news_ids" : [
{
news_id : "news_1",
news_neg_keywords : ["전범", "횡령", ...]
news_url : "http://www.naver.com",
news_content : "뉴스 본문에 대한 정보를 리턴합니다...",
},
{
news_id : "news_2",
...
}
],
"brand_name" : "한국언론진흥재단",
"date_time" : "20190509",
}
응답 상세
key | value | Description |
---|---|---|
pos_news_ids | json_array |
받을 뉴스 리스트 배열 |
news_id | ${news_id} |
해당 뉴스의 고유 번호(openAPI 사용) |
news_neg_keywords | json_array |
해당 뉴스에서 검출된 부정 단어 리스트 |
news_url | HTTP_URL |
해당 뉴스 링크 정보 |
news_content | ${text} |
뉴스 본문 정보, 최대 200자 제한 |
브랜드 뉴스 리스트
개요
- 브랜드와 연관된 뉴스 리스트를 출력
- 해당 뉴스에 대한 고유 정보 및 url을 포함한다.
요청 URL
https://brand_news.com/analyze/access_news_list/all
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"brand_name" : "한국언론진흥재단",
"brand_key" : "news_41230",
"date_time" : "20190509"
"date_type" : "daily",
"top_count" : "5"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
brand_name | x | ${brand_name} |
브랜드 대표 상호명 부 상호명은 노출하지 않음 |
brand_key | x | ${brand_key} |
브랜드를 판별하는 키 값 |
date_time | o | YYYYMMDD |
조회할 시간 선택 |
date_type | o | weekly or daily |
조회할 시간의 타입 선택 |
top_count | o | 1 <= x <= 20 |
받을 뉴스 리스트 수 |
- brand_name이나 brand_key의 경우 무조건 하나는 정확히 정의되어야 한다.
date_type
의 경우 주단위 분석 결과(weekly), 일단위 분석 결과(daily) 설정이 가능하다.
응답 형식
{
"news_ids" : [
{
news_id : "news_1",
news_keywords : ["라인", "빅데이터", ...]
news_url : "http://www.naver.com",
news_content : "뉴스 본문에 대한 정보를 리턴합니다...",
},
{
news_id : "news_2",
...
}
],
"brand_name" : "한국언론진흥재단",
"date_time" : "20190509",
}
응답 상세
key | value | Description |
---|---|---|
pos_news_ids | json_array |
받을 뉴스 리스트 배열 |
news_id | ${news_id} |
해당 뉴스의 고유 번호(openAPI 사용) |
news_keywords | json_array |
해당 뉴스에서 검출된 부정 단어 리스트 |
news_url | HTTP_URL |
해당 뉴스 링크 정보 |
news_content | ${text} |
뉴스 본문 정보, 최대 200자 제한 |
워드 클라우드
- 브랜드와 연관된 키워드와 가중치를 리턴한다.
- 해당 날짜 기준 가장 이슈가 되었던 단어 정보를 확인할 수 있다.
요청 URL
https://brand_news.com/analyze/access_word_cloud
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"brand_name" : "한국언론진흥재단",
"brand_key" : "news_41230",
"date_time" : "20190509"
"date_type" : "weekly",
"top_count" : "5",
"sort" : "desc"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
brand_name | x | ${brand_name} |
브랜드 대표 상호명 부 상호명은 노출하지 않음 |
brand_key | x | ${brand_key} |
브랜드를 판별하는 키 값 |
date_time | o | YYYYMMDD |
조회할 시간 선택 |
date_type | o | weekly or daily |
조회할 시간의 타입 선택 |
top_count | o | 1 <= x <= 20 |
출력될 단어의 수를 리턴한다 |
sort | x | asc or desc |
가중치에 따른 rank 기준을 정의한다.(기본값 : 내림차순) |
- brand_name이나 brand_key의 경우 무조건 하나는 정확히 정의되어야 한다.
date_type
의 경우 주단위 분석 결과(weekly), 일단위 분석 결과(daily) 설정이 가능하다.
응답 형식
{
"keywords" : [
{
"rank" : "1",
"word" : "빅카인즈"
"weight" : "74.48"
},
{
"rank" : "2",
"word" : "공공"
"weight" : "69.12"
},
...
],
"brand_name" : "한국언론진흥재단",
"date_time" : "20190509",
}
응답 상세
key | value | Description |
---|---|---|
keywords | json_array |
관련 단어 리스트, 각 단어마다의 상세 정보를 jsonArray형태로 리턴 |
rank | ${integer} |
워드클라우드에서 차지하는 단어의 가중치 순위(기본값:내림차순) |
word | ${string} |
키워드 |
weight | ${float} |
해당 키워드의 가중치 정보 |
brand_name | ${brand_name} |
브랜드명 |
date_time | YYYYMMDD |
요청한 날짜 정보 |
특정 시간대 키워드
- 단순히 해당 브랜드에 대한 top..이 아니라 특정 시간별 검색이 가능함
- 특정 시간과 기간을 입력받아, 해당 시점의 이슈가 되었던 키워드 정보를 리턴한다.
- 이벤트의 홍보 효과 또는 사업 동향등의 정보를 이 API를 통해 확인할 수 있다.
요청 URL
https://brand_news.com/analyze/time_keyword
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"date_time" : "20190509"
"date_type" : "weekly",
"top_count" : "10"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
date_time | o | YYYYMMDD |
조회할 시간 선택 |
date_type | o | weekly or daily |
조회할 시간의 타입 선택 |
top_count | o | 1 <= x <= 20 |
출력될 단어의 수를 리턴한다 |
date_type
의 경우 주단위 분석 결과(weekly), 일단위 분석 결과(daily) 설정이 가능하다.
응답 형식
{
"keywords" : [
{
"rank" : "1",
"word" : "빅카인즈"
"weight" : "74.48"
"brand_name": "",
"brand_category": ""
},
{
"rank" : "2",
"word" : "공공"
"weight" : "69.12"
"brand_name" : "맥도날드",
"brand_category": "식사"
},
...
],
"date_time" : "20190509"
}
응답 상세
key | value | Description |
---|---|---|
keywords | json_array |
관련 단어 리스트, 각 단어마다의 상세 정보를 jsonArray형태로 리턴 |
rank | ${integer} |
워드클라우드에서 차지하는 해당 단어의 가중치 순위를 나타낸다.(기본값:내림차순) |
brand_name | ${brand_name} |
해당 브랜드의 이름을 리턴 |
brand_category | 식사 , 카페 , 의류 , ... |
브랜드의 관련 사업 분야 리턴 |
date_time | YYYYMMDD |
요청한 날짜 정보를 리턴한다. |
사업 분야별 이슈 정도
- 각종 사업 카테고리별 이슈도를 확인
- 뉴스를 기반으로 어느 사업분야가 많이 노출되고 있는지 파악할 수 있다.
- 기본적으로 입력받은 날짜 기준 주단위 통계를 제공한다(weekly)
요청 URL
https://brand_news.com/analyze/issue_category
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"date_time" : "20190509"
"top_count" : "10"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
date_time | o | YYYYMMDD |
조회할 시간 선택 |
top_count | o | 1 <= x <= 20 |
출력될 단어의 수를 리턴한다 |
응답 형식
{
"categories" : [
{
"brand_category_index" : "cat_00001",
"brand_category" : "카페",
"user_click": "128402"
},
{
"brand_category_index" : "cat_00002",
"brand_category" : "식사",
"user_click": "102833",
},
...
],
"date_range_start" : "20190506",
"date_range_end" : "20190512"
}
응답 상세
key | value | Description |
---|---|---|
categories | json_array |
Brand-NEWs가 제공하는 사업 분야 리스트 |
brand_category_index | ${hash} |
내부적으로 저장되어 있는 고유 카테고리 번호 |
brand_category | ${brand_category} |
카테고리명 |
user_click | ${integer} |
해당 카테고리와 관련된 뉴스 기사의 수 |
date_range_start | ${YYYYMMDD} |
조회하는 해당 주의 시작 날짜(Monday) |
date_range_end | ${YYYYMMDD} |
조회하는 해당 주의 마지막 날짜(Sunday) |
실시간 이슈 지역 지도
- 실시간 분석을 통해 지역 정보가 포함된 정보를 기준으로 이슈 발생 지역을 확인한다.
- 지역 정보는 행정 구역상 중심 좌표를 기준으로 출력
- 지역명이 포함되는 뉴스의 수에 따라 지표가 변화할 수 있다.
- 뉴스 발행 수 기준 내림차순으로 정렬되어 리턴한다.
요청 URL
https://brand_news.com/analyze/issue_map
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"top_count" : "10"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
top_count | o | 1 <= x <= 20 |
응답 형식
{
"regions" : [
{
"region_index" : "...",
"latitude" : "cat_00001",
"longitude" : "카페", ### TODO 여기서부터 작업시작
"news_count": "128402"
"rank" : "1"
},
{
"region_index" : "...",
"latitude" : "cat_00001",
"longitude" : "카페", ### TODO 여기서부터 작업시작
"news_count": "128402"
"rank" : "2"
},
...
]
}
응답 상세
key | value | Description |
---|---|---|
regions | json_array |
지역 정보를 포함하는 json_array |
region_index | ${region_index} |
지역 고유 인덱스 번호 |
latitude | ${float, 37.1203124} |
지역 위도(원 중심) |
longitude | ${float, 128.1234521} |
지역 경도(원 중심) |
news_count | ${integer} |
해당 지역 정보를 포함하는 뉴스 기사의 수 |
rank | ${integer} |
news_count 별 정렬시 리턴되는 카운트의 수 |
사업 분야별 사용자 뉴스 피드백
- 사업 카테고리별로 뉴스 기사의 사용자의 반응 정도를 확인할 수 있다.
- 특정 메인 포털 사이트의 지표에 의존적
요청 URL
https://brand_news.com/analyze/category_feedback
요청 형식
{
"access_key" : "abcde-fghij-12345-67890",
"date_time" : "20190509",
"top_count" : "4"
}
요청 상세
key | required | value | Description |
---|---|---|---|
access_key | o | ${access_key} |
사업자가 발급받은 고유 키 |
date_time | o | YYYYMMDD |
조회할 시간 |
top_count | o | 1 <= x <= 20 |
출력될 카테고리 수 |
응답 형식
{
"categories" : [
{
"brand_category_index" : "cat_00001",
"brand_category" : "카페",
"favorite_count": "1042",
},
{
"brand_category_index" : "cat_00002",
"brand_category" : "식사",
"favorite_count": "922",
},
...
],
"date_range_start" : "20190506",
"date_range_end" : "20190512"
}
응답 상세
key | value | Description |
---|---|---|
categories | json_array |
Brand-NEWs가 제공하는 사업 분야 리스트 |
brand_category_index | ${hash} |
내부적으로 저장되어 있는 고유 카테고리 번호 |
brand_category | ${brand_category} |
카테고리명 |
favorite_count | ${integer} |
해당 카테고리와 관련된 사용자 반응 수 |
date_range_start | ${YYYYMMDD} |
조회하는 해당 주의 시작 날짜(Monday) |
date_range_end | ${YYYYMMDD} |
조회하는 해당 주의 마지막 날짜(Sunday) |
무엇을 만들까..?
브랜드 이름 검색시
- 뉴스 기사들을 연도별로 보내줘야 함
- 기사를 분석해서 착한기사 나쁜기사를 판단한 뒤 + / -(갯수) 로 보여줘야 한다.
- 키워드만 나오는 것(ex. 전범기업, 기부 ...) == word cloud
- name, image, description
- 기사를 클릭시 전체 기사로 보내줄 수 있게 해줘야 함 (provider_link_page)
윤성 개발 업무
해야할 일...
- swagger-ui
- jpa 이용하여 db 연동
- jpa로 db연동해서 brands정보 반환
- 처음에 요청할 모든 뉴스 정보 반환
- + / - 점수를 위한 기사의 content 가져오기 -> 분석은 찬욱이가...
업무 분담
윤성
- db에 기업정보 넣기(이름, 이미지, description)
- 뉴스검색 api
- 상세검색 api
- api로 만들어서 json뿌리기
찬욱
- 상세검색 결과 분석
- 워드클라우드 api
- 워드클라우드 키워드 분석
open api 연동
뉴빅해커톤 open api를 연동한다.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.