Mac Plus

Hello Swift

개인화 추천 작업

######

  • 요즘 OTT나 쇼핑관련된 앱을 보다보면 각 개인에 맞춰서 데이터를 보여주고 있다.
  • 개인의 성향이나 봤던 데이터를 활용해서 개인화 맞춤을 해주는데 도입을 도입을 위해 준비해봤다.
  • 개인화 알고리즘 등 여러가지를 찾아봤고 코사인 유사도를 대중적으로 많이 사용한다고 해서 적용해보려고 한다

문제1 예제들을 많이 살펴보았는데 파이썬으로 보통 작업을 진행하는데 Swift로 진행하다보니 해당 문자열들을 벡터 형태로 변경을 해주는부분에서 어려움을 겪었다

해결1 맨 처음 문자열을 unicode로 변환해서 유사도를 계산해줬는데 맞지 않는거 같았다. 다시 구글검색을 통해서 문자열을 워드 임베딩 해줘서 벡터 형태로 변경하는걸 발견했다.

  • 대문자 안됨
  • 공백안됨

Swift에는 자연어 텍스트를 분석하고 테이러를 추론하는 프레임워크를 제공해준다.

  • NaturalLanguage

ex) let embedding = NLEmbedding.wordEmbedding(for: .english) let vector1 = embedding?.vector(for: “string”) ?? []

result 값 [ -0.028147244825959206, 0.07158327847719193, -0.01949676126241684, … 0.032715387642383575, 0.09790712594985962, -0.26019203662872314, … ]