kosmo138 / resumate

자기소개서를 세상에서 가장 쉽게 쓰는 방법
https://www.resumate.store
0 stars 0 forks source link

단어 연관성을 판단한 키워드 추출 #35

Closed baeksona closed 8 months ago

baeksona commented 8 months ago
    • [x] 구글에 "회사이름 인재상"이라고 검색하면 검색결과 첫번째 url을 가져오거나,
    • [x] 인재상이라는 단어를 포함한 요소를 찾아 url을 받아온다.
    • [x] 받아온 url을 가진 html에서 단어(명사)를 리스트로 뽑아
    • [x] wiki.model을 이용하여 Word2Vec으로 단어 간 연관도를 판단하여 인재상에 해당하는 키워드만 추려내기
suyons commented 8 months ago

240322 문제 진단 및 조치 내용

  1. git push 진행 시 오류 발생
    • wiki.model 관련 파일의 크기가 커서 (약 900MB) 발생했던 문제로 해당 파일 이름을 .gitignore 파일에 추가하여 commit & push 목록에서 제외되도록 설정함.
    • 10MB 이하의 '소스 코드만' GitHub 서버로 push하도록 안내함.
  2. 자연어 처리 로직 설계의 어려움
    • 스크랩한 HTML 텍스트에서 형태소 분석으로 명사 키워드 추출까지 성공
    • 인재상에 해당하는 키워드만을 선별하는 로직 구현에 대한 감이 잡히지 않았음
    • 코사인 유사도, 벡터의 내적에 대한 개념을 설명함
    • 이후 Word2Vec을 이용한 코사인 유사도 계산 예시 코드를 제공함

Word2Vec을 이용한 코사인 유사도 계산 코드 예시

from gensim.models import Word2Vec
model = Word2Vec.load("wiki.model")
input_words = ['미세먼지', '라면', '컴퓨터', '초콜릿', '커피', '젤리', '사탕']
compare_words = ['간식', '설탕', '탄산음료']

cosine_distance = [model.wv.similarity(word, compare_word) for word in input_words for compare_word in compare_words]
print(cosine_distance)

참고 문서

  1. https://ko.wikipedia.org/wiki/코사인_유사도
  2. https://stackoverflow.com/questions/21979970/how-to-use-word2vec-to-calculate-the-similarity-distance-by-giving-2-words