위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (564) N
    • ✎ 2025년 (5) N
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (564) N
    • ✎ 2025년 (5) N
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2021년/개발공부

    오늘부터 나도 인싸! 인터넷 친구만들기 😎

    2021. 4. 15. 18:55

    by. 위지원

    아래 글을 작성한지도 꽤 오래되었다. 시간이란 참 빠르군, 

     

    [티스토리 게시글 추천 시스템 만들기] #4 worldCloud 만들기

    2021.03.24 - [✎ 21.上/Data] - [티스토리 게시글 추천 시스템 만들기] #1 계획 2021.03.24 - [✎ 21.上/Data] - [티스토리 게시글 추천 시스템 만들기] #2 크롤링해서 HDFS에 Parquet으로 저장 2021.03.25 - [✎..

    weejw.tistory.com

    1.문제의 발견

    오늘 그냥 공부하다가 아래와 같은 상황을 발견했다.

     

    🤪 그래,, 생각해보니 사이킷런의 TfidfVectorizer는 외국꺼고..한글을 잘 알리가 없다. ;;

    그래서 knolopy okt를 쓴것과 차이가 있는 것이여다.

    리서치할 때 왜 이런 좋은 라이브러리를 두고 다들 구현을 하시지? 라고 생각했는데 그 분들이 맞는 것이였다.

    위지원은 접시에 코를 박아야한다.🍽

    ㅋㅋㅋㅋ vocab 난장판 ㅠ

     

    2. 코드 수정

    그래서 각 문장에 있는 명사로만 tfidf를 계산하려고 아래 사이트를 참고했다.

    아래 부분은 그냥 split()으로 word를 구분하는데 이 부분만 okt를 사용했다.

     

    위키독스

    온라인 책을 제작 공유하는 플랫폼 서비스

    wikidocs.net

     

    확실히 음츰나게 오래걸린다... 띠용때용띠용 7분 머선129 

    하긴 내가 가지고있는 row가 2300이니까 2300*2300*append할때 용량늘리면서 또 시간걸리고

     

    원본 데이터는 보여줄 수 없으니(회사 데이터이므로) 내가 그냥 조잡하게 데이터를 몇 개 만들었다.

    지금 졸리고 배고프고,, 친구도 없고.,, 

     

    그리고 키워드를 던지고 코드를 돌린 결과 아래와 같이 전혀 문제 없다.

    원본 데이터(회사 데이터)에서 비교해본 결과 전 후 차이가 크다.  내가 만든 데이터로는 크게 확인이 불가했다..ㅋㅋ 너무 적어서 그런가

     

    sample_data = {"위지원의 현재 관심사":["저녁","술"]}

    ㅋㅋㅋ케케케.. 친구없지 그럼~

     

    3. 인터넷 친구만들기 

    뭔가 이걸 만들고 있자니 대화형식으로도 쌉파써블일거란 생각이 들었다.

    원래 코드에서는 아래와 같이 되어있다. 키워드가 있는 부분만 1 set해서 cosine 계산했다. 완~전 단순하다. 

    때론 단순한게 최고다 😝 하하

    original_col = tfidf_.columns
    original_col_len = len(original_col)
    for name, keywords in sample_data.items():
        print(name)
        print(keywords)
        new_matrix = dict(zip(original_col,[0]*original_col_len))
        for keyword in keywords:
            if keyword in new_matrix:
                new_matrix[keyword] = 1
        
        cosine_matrix = cosine_similarity(tfidf_, pd.DataFrame(new_matrix.values()).transpose())
        sim_scores = [(i, c) for i, c in enumerate(cosine_matrix)]
        sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
        
        for i in range(5):
            print("위지원의 인터넷 친구: %s" % que2id[sim_scores[i][0]])    
        print()

     

    위 코드를 조금 손봐주자.  아래처럼 okt로 문장을 쪼개기만했다. 

    doc_pos = okt.pos(chat)
    for pos in doc_pos:
    	if pos[1] == "Noun" and pos[0] in new_matrix:
    	new_matrix[keyword] = 1

     

    그 결과,, 아래처럼 말하면 말을 걸어준다 ㅠㅠ 난 이제 핵인싸다. 

    sample_data = {"위지원":"아 눈아프다. 하루종일 모니터 보니까 술먹고싶다."}

    이제 내일 이걸 API로 만들어볼까 한다.

    저작자표시 (새창열림)

    '2021년 > 개발공부' 카테고리의 다른 글

    apache Airflow  (1) 2021.04.22
    [논문 정리] A Contextual-Bandit Approach to Personalized News Article Recommendation  (0) 2021.04.17
    [논문 정리] Wide & Deep Learning for Recommender Systems  (0) 2021.04.14
    쿠버네티스 예제: mongodb+kubernetes  (0) 2021.04.12
    Python decorator  (2) 2021.04.12

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • apache Airflow 2021.04.22
    • [논문 정리] A Contextual-Bandit Approach to Personalized News Article Recommendation 2021.04.17
    • [논문 정리] Wide & Deep Learning for Recommender Systems 2021.04.14
    • 쿠버네티스 예제: mongodb+kubernetes 2021.04.12
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터와 관련된 일을 모두 좋아합니다

티스토리툴바

티스토리툴바