사선도ql로 추천 엔진 구축 - 섹션 2
""글에서 최근에 발표된 Slash GraphQL에서 관리되는 GraphQL 백엔드 Dgraph은 Java 기반 추천 엔진의 기록 시스템으로 사용됩니다.도형 데이터 저장은 추천 엔진 등 용례에 매우 적합한데 그 중에서 데이터 간의 관계는 데이터 자체와 마찬가지로 중요하다.Slash GraphQL을 사용하면 완전히 관리된 GraphQL 데이터베이스를 신속하게 구축하고 최소한의 작업량으로 실행할 수 있습니다.
본고는 Slope One 시리즈의 협동 필터링 알고리즘을 어떻게 활용하여 기존의 등급에 따라 제품의 흥미 수준을 예측하는지 깊이 있게 이해했다.요컨대 사율 1 평점 알고리즘은 추천 엔진의 핵심이 될 것이다.
본고는 마지막으로 Spring Boot 추천 엔진에 RESTful URI를 제공함으로써 Dgraph Slash GraphQL SaaS 서비스에 저장된 데이터를 추천합니다.
본고는 이러한 데이터를 더욱 쉽게 사용할 수 있는 각도 클라이언트를 소개하고자 한다...재밌게 봐주셨으면 좋겠습니다.
Data Domain의 향상된 기능
비록 원시 문장은 추천 엔진의 작업 원리를 보여 주었지만, 나는 나의 원시 데이터 샘플이 소수의 샘플 고객에게 너무 많은 등급을 제공했다고 생각한다.그 밖에 나는 두 번째 예에서 사용하는 예술가의 수를 확대해야 한다고 생각한다.
그래서 기존 Slash GraphQL 데이터베이스에서 데이터를 지우고 다시 시작했습니다.쉽게 업데이트할 수 있지만 이 연습에서는 인프라를 변경할 필요가 없으며 다음과 같이 유지됩니다.
type Artist {
name: String! @id @search(by: [hash, regexp])
ratings: [Rating] @hasInverse(field: about)
}
type Customer {
username: String! @id @search(by: [hash, regexp])
ratings: [Rating] @hasInverse(field: by)
}
type Rating {
id: ID!
about: Artist!
by: Customer!
score: Int @search
}
슬래시 그래픽 QL 사용자 인터페이스의 다음 변형을 사용하여 예술가 프로젝트의 새 목록을 추가합니다.mutation {
addArtist(input: [
{name: "Eric Johnson"},
{name: "Genesis"},
{name: "Journey"},
{name: "Led Zeppelin"},
{name: "Night Ranger"},
{name: "Rush"},
{name: "Tool"},
{name: "Triumph"},
{name: "Van Halen"},
{name: "Yes"}]) {
artist {
name
}
}
}
업데이트된 고객 기록도 삽입되었습니다.mutation {
addCustomer(input: [
{username: "David"},
{username: "Doug"},
{username: "Jeff"},
{username: "John"},
{username: "Russell"},
{username: "Stacy"}]) {
customer {
username
}
}
원본과 같은 돌연변이를 사용하여 다음 표에 따라 등급을 추가합니다.H2(메모리) 데이터베이스 소개
두 번째 글에 대해 나는 추가 데이터 원본을 소개하고 싶다.이렇게 하면 정보와 사실이 왕왕 여러 개의 데이터 원본에서 나온다는 사실이 두드러질 것이다.나는 개원된 경량급 메모리 자바 데이터베이스인 H2을 사용하기로 결정했다.H2 데이터베이스는 다음 Maven 종속성을 사용하여 Spring Boot에 빠르고 쉽게 추가할 수 있습니다.
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
H2 데이터베이스는 슬래시 그래픽 QL에 저장된 아티스트 레코드에 대한 추가 정보를 제공합니다.레코드는 Artists라는 테이블에 저장되며 주 키는 예술가의 이름만 사용됩니다.@Data
@Entity
@Table(name = "artists")
public class Artist {
@Id
private String name;
private String yearFormed;
private boolean active;
private String imageUrl;
}
A 데이터.이 테이블 정보를 포함하는 sql 파일은 Spring 부트 저장소의 리소스 폴더에 생성되어 저장됩니다.따라서 서버가 시작될 때마다 H2 데이터베이스가 채워집니다.개선 제안 엔진
추천 엔진의 값을 보기 위해 엔진이 제공하는 결과는 추천에 관한 모든 필요한 정보를 포함해야 한다.이러한 요구 사항을 충족하기 위해 다음과 같이 더 많은 예술가 속성을 포함하기 위해 응답에서 제안된 유효 부하를 업데이트했습니다.
{
"matchedCustomer": {
"username": string
},
"recommendations": [
{
"name": string,
"yearFormed": string,
"active": boolean,
"imageUrl": string,
"rating": number,
"score": number
} ...
]
}
엔진은 두 가지 추가 메타데이터를 수용하기 위해 향상되어야 합니다.각진 고객을 소개하다
클라이언트를 신속하게 만들기 위해서 나는 Angular CLI을 사용하기로 결정했다.Angular CLI는 명령줄 인터페이스로 구성 요소, 서비스, 기본 기능을 신속하고 쉽게 만들고 세분화하여 개발자가 현재의 수요를 충족시키기 위해 업무 논리를 작성하는 데 전념할 수 있도록 합니다.이것은 내 기술의 이상적인 선택이다.
짧은 시간 내에 Angular CLI를 사용하여 다음 항목을 설명할 수 있습니다.
Angular 클라이언트 사용
Angular 클라이언트를 구성하고 Spring 부트 권장 엔진을 실행하면 다음 URL을 사용하여 응용 프로그램을 시작할 수 있습니다.
http://localhost:4200
응용 프로그램을 로드하면 다음 화면이 표시됩니다.
목록(list artists 구성 요소에서 온 것)은 H2 데이터베이스에 대한 정보와 Dgraph Slash GraphQL 데이터베이스의 평균 등급을 제공합니다.
Rush 항목을 클릭하여 view artist 구성 요소를 호출하고 다음 정보를 표시합니다.
이 예에서 나는 현재 고객으로 러셀을 선택했다.화면 상단에는 동일한 정보가 표시되고 오른쪽에는 이미지가 표시됩니다.다음은 Spring 부트 서비스의 권장 API에 대한 정보입니다.
결과적으로 러셀이라는 고객에게 영합하고 러쉬라는 밴드의 조언을 피하고자 했다.
고객이 Stacy로 변경하면 다음과 같이 동일한 화면이 업데이트됩니다.
화면 상단의 데이터는 변하지 않지만 추천 부분은 완전히 다르기 때문에 새로 선택한 사용자에게 적합하다.
결론
본고에서 엔진을 클라이언트 응용 프로그램에 연결하고 더욱 개선하여 원시 문장보다 더 큰 가치를 제공하도록 추천한다.
본 사례의 디자인은 매우 간단하지만 채택한 개념과 방법은 기능이 완비된 추천 엔진에 통합될 수 있다.
Dgraph의 Slash GraphQL과 Spring Boot을 사용하면 출시 시간이 단축될 것입니다.그것들은 경험과 교훈을 바탕으로 한 원형 디자인, 분석과 새로운 디자인을 채택하는 것을 쉽게 한다.
전체 소스 코드에 관심이 있는 사람은 slash-graph-ql-angular GitLab repository을 보십시오.
Reference
이 문제에 관하여(사선도ql로 추천 엔진 구축 - 섹션 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mbogan/building-a-recommendation-engine-using-slash-graphql-part-2-4hen텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)