문서 벡터
- 문서들을 고정된 길이의 벡터로 변환한다면 벡터 간 비교로 문서들을 서로 비교할 수 있음
- 각 문서를 문서 벡터로 변환하기 위해서는 이미 구현된 패키지인 Doc2Vec이나 Sent2Vec 등을 사용해서 학습하거나
단어 벡터를 얻은 뒤 문서에 존재하는 단어 벡터들의 평균을 문서 벡터로 간주할 수도 있음
데이터 로드
- 문서 내 각 단어들을 Word2Vec을 통해 단어 벡터로 변환하고,
이들의 평균으로 문서 벡터를 얻어 선호하는 도서와 유사한 도서를 찾아주는 도서 추천 시스템을 만들기 위해
1) 책의 이미지와 책의 줄거리를 크롤링한 데이터를 다운로드
2) 데이터를 데이터프레임으로 로드하고 전체 문서의 수를 출력
3) 상위 5개의 행만 출력
4) 줄거리에 해당하는 열인 'Desc 열'이 중요하므로
해당 열에 있는 데이터에 대해서 Word2Vec을 학습하기 위해 전처리를 진행하고 'cleaned' 열에 저장
5) 전처리 과정에서 빈 값이 생긴 행이 있을 수 있으므로 nan 값으로 변환 후에 해당 행을 제거함
6) Word2Vec 훈련을 수행하기 위해 토큰화를 수행하여 corpus라는 리스트에 저장함
사전 훈련된 워드 임베딩 사용하기
- 1) 데이터가 충분하지 않은 상황이므로 사전 훈련된 Word2Vec을 단어 벡터의 초기값으로 사용
단어 벡터의 평균 구하기
- 1) 각 문서에 존재한 단어들의 벡터값의 평균을 구하여 해당 문서의 벡터값을 연산함
문서 벡터를 이용한 추천 시스템 구현하기
- 1) 각 문서 벡터 간의 코사인 유사도를 구하여 선택한 책에 대해서 가장 줄거리가 유사한 5개의 책을 찾아내는 함수를 생성
2) 좋아하는 책 제목인 '다빈치 코드'를 넣어 책의 문서 벡터와 유사한 문서 벡터값을 가진 책들을 추천받으면
다빈치 코드는 작가 댄 브라운의 작품이므로 추천되는 작품들 또한 5개 중 3개가 댄 브라운의 작품들이 추천됨
3) 아가사 크리스티의 '애크로이드 살인사건'과 유사한 도서를 추천받으면
미스터리 스릴러 소설이므로 이와 유사한 소설들이 추천되게 됨
코드
GitHub - GaGa-Kim/ML_Study: 머신러닝 스터디 ⚙
머신러닝 스터디 ⚙. Contribute to GaGa-Kim/ML_Study development by creating an account on GitHub.
github.com
'ML > 딥 러닝을 이용한 자연어 처리' 카테고리의 다른 글
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 독투벡터 (0) | 2022.12.20 |
---|---|
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 문서 임베딩 (0) | 2022.12.20 |
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 엘모 (0) | 2022.12.16 |
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 사전 훈련된 워드 임베딩 (0) | 2022.12.16 |
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 패스트텍스트 (0) | 2022.12.14 |
문서 벡터
- 문서들을 고정된 길이의 벡터로 변환한다면 벡터 간 비교로 문서들을 서로 비교할 수 있음
- 각 문서를 문서 벡터로 변환하기 위해서는 이미 구현된 패키지인 Doc2Vec이나 Sent2Vec 등을 사용해서 학습하거나
단어 벡터를 얻은 뒤 문서에 존재하는 단어 벡터들의 평균을 문서 벡터로 간주할 수도 있음
데이터 로드
- 문서 내 각 단어들을 Word2Vec을 통해 단어 벡터로 변환하고,
이들의 평균으로 문서 벡터를 얻어 선호하는 도서와 유사한 도서를 찾아주는 도서 추천 시스템을 만들기 위해
1) 책의 이미지와 책의 줄거리를 크롤링한 데이터를 다운로드
2) 데이터를 데이터프레임으로 로드하고 전체 문서의 수를 출력
3) 상위 5개의 행만 출력
4) 줄거리에 해당하는 열인 'Desc 열'이 중요하므로
해당 열에 있는 데이터에 대해서 Word2Vec을 학습하기 위해 전처리를 진행하고 'cleaned' 열에 저장
5) 전처리 과정에서 빈 값이 생긴 행이 있을 수 있으므로 nan 값으로 변환 후에 해당 행을 제거함
6) Word2Vec 훈련을 수행하기 위해 토큰화를 수행하여 corpus라는 리스트에 저장함
사전 훈련된 워드 임베딩 사용하기
- 1) 데이터가 충분하지 않은 상황이므로 사전 훈련된 Word2Vec을 단어 벡터의 초기값으로 사용
단어 벡터의 평균 구하기
- 1) 각 문서에 존재한 단어들의 벡터값의 평균을 구하여 해당 문서의 벡터값을 연산함
문서 벡터를 이용한 추천 시스템 구현하기
- 1) 각 문서 벡터 간의 코사인 유사도를 구하여 선택한 책에 대해서 가장 줄거리가 유사한 5개의 책을 찾아내는 함수를 생성
2) 좋아하는 책 제목인 '다빈치 코드'를 넣어 책의 문서 벡터와 유사한 문서 벡터값을 가진 책들을 추천받으면
다빈치 코드는 작가 댄 브라운의 작품이므로 추천되는 작품들 또한 5개 중 3개가 댄 브라운의 작품들이 추천됨
3) 아가사 크리스티의 '애크로이드 살인사건'과 유사한 도서를 추천받으면
미스터리 스릴러 소설이므로 이와 유사한 소설들이 추천되게 됨
코드
GitHub - GaGa-Kim/ML_Study: 머신러닝 스터디 ⚙
머신러닝 스터디 ⚙. Contribute to GaGa-Kim/ML_Study development by creating an account on GitHub.
github.com
'ML > 딥 러닝을 이용한 자연어 처리' 카테고리의 다른 글
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 독투벡터 (0) | 2022.12.20 |
---|---|
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 문서 임베딩 (0) | 2022.12.20 |
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 엘모 (0) | 2022.12.16 |
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 사전 훈련된 워드 임베딩 (0) | 2022.12.16 |
[딥 러닝을 이용한 자연어 처리 입문] 09. 워드 임베딩 - 패스트텍스트 (0) | 2022.12.14 |