Skip to content

7주차 과제 #7

@GirinMan

Description

@GirinMan

여섯 번째 과제: BERT를 이용한 sentence embedding의 cosine similarity 계산하기

회합 자료 링크: #1 (comment)
image

  • BERT는 Transformer 아키텍처를 기반으로 한 모델로, 문장의 의미를 잘 이해하고 문장을 벡터 형태로 변환할 수 있습니다.
  • Sentence embedding은 문장을 고정된 길이의 벡터로 표현하는 것을 의미하며, 문장 간의 유사도를 계산하는 데 유용합니다. 자세한 내용은 Weekly NLP week4를 참고하세요!
  • 이번 과제에서는 BERT 모델을 사용하여 문장을 임베딩하고, cosine similarity와 같은 유사도 계산을 수행하여 문장 간의 관계를 분석합니다.

Colab Python 노트북을 사용한 BERT sentence embedding 실습

sentence_embeddings.ipynb

Step 1. 예시 노트북을 실행해보며 sentence embedding과 cosine similarity 계산 방법 익히기

  • Google 계정 로그인 후 colab에 접속해서 현재 레포지토리의 /Week7/sentence_embeddings.ipynb 노트북을 실행해보면서 한국어 문장을 임베딩 벡터로 표현하는 과정과, 각 벡터들 사이의 cosine 유사도를 이용해 문장 사이의 의미적 유사도를 계산하는 방법에 대해 살펴봅시다.
  • 예시 데이터 대신 자신만의 데이터를 입력해서 사용해도 좋아요!

Step 2. 입력된 키워드와 유사한 뉴스 기사 추천 프로그램 만들기

  • 위에서 사용했던 BERT 모델을 이용하여, 사용자가 입력한 내용과 가장 유사한 뉴스 제목을 찾아 추천해주는 프로그램을 만들어 봅시다.
  • 프로그램의 뼈대를 이루는 함수 이름과 정의가 마련되어 있으니, 필요한 부분을 자유롭게 구성하여 프로그램을 완성해 봅시다.
  • 주의: main 함수의 정의는 바꾸지 마세요!

작동 예시

입력 > 신재생 에너지
출력 > 입력과 유사한 상위 5개의 뉴스 제목을 출력합니다.
1. 에너지정책 유턴  재생에너지 대신 원전으로	(score: 56.85)
2. 전기 아껴쓴 만큼 현금 돌려받는다...에너지캐쉬백 전국 확대	(score: 54.78)
3. 수자원공사 한국에너지기술연과 그린수소 연구 업무협약	(score: 53.07)
4. 이어지는 폭염 늘어나는 전력수요	(score: 51.01)
5. 코오롱 수소 밸류체인 플랫폼 구축… 생산부터 발전까지 원스톱	(score: 50.95)

Hint

  • Hint 1: news_title에는 뉴스 데이터셋에 포함되어 있는 각 뉴스 기사들의 제목이 포함되어 있습니다. 예시 문장의 임베딩을 계산한 것과 같은 방식을 사용할 수 있습니다.
  • Hint 2: 위에서 정의하고 사용했던 cal_score 함수를 사용하면 사용자가 입력한 요청사항과 뉴스 제목들 사이의 similarity score를 계산할 수 있습니다.

제출 방식

  • 노트북 마지막 부분에 완성한 코드와, 실행 화면을 캡쳐해서 보여주세요.
  • 어떻게 구현했는지 간단하게 설명도 곁들여주세요.

Metadata

Metadata

Assignees

Labels

assignment각 주차별 조별 과제 기록

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions