ratsgo / embedding

한국어 임베딩 (Sentence Embeddings Using Korean Corpora)

Home Page:https://ratsgo.github.io/embedding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

초보적 질문입니다.

hyeonjiK opened this issue · comments

안녕하세요, 저는 대학원에서 데이터사이언스를 공부하고 있는 학생입니다.
저는 문과 출신으로 프로그래밍 경험이 없어 코드 짤 때 어려움을 많이 겪고 있습니다.

이기창 님께서 쓰신 '한국어 임베딩'으로 공부를 하고 있는데, 기초적인 질문이 있어서 메일 드립니다.
제가 이번 학기에 진행하려고 하는 프로젝트는 21대 국회의원 선거 관련, 각 후보자에 관한 네이버 뉴스 댓글을 보고 당선자와 낙선자에 관한 뉴스 댓글의 차이가 무엇인지 알아보는 것입니다.
댓글 데이터는 일단 모았는데, 이 데이터에서 어떤 특징을 뽑아낼 수 있는가가 문제인데요.

우선 단어 임베딩 시각화를 진행해보려고 합니다.
그래서 4.7.4장 '단어 임베딩 시각화'에 나오는 코드를 따라해 봤습니다.

깃허브에 나온 코드를 따라서 써봤는데요(https://github.com/lih0905/Book_Korean_Embedding/blob/master/Chap4/4.5%20GloVe.ipynb)

  1. [2번] 코드 vec_path = '../data/word-embeddings/glove/glove.vecs.txt' 에서 txt는 책의 코드 4-38에 나온 '이미 학습된 단어 임베딩 다운로드'를 통해 다운 받으신 파일인지요?
    이 코드가 파이썬이 아닌 것 같은데, 파이썬으로 구현할 방법이 있을까요?

  2. 뒤 이어 나오는 [74번]코드와 [38번] 코드는 다음과 같이 쓰셨습니다.
    In [74]:
    word2id = dict()
    for sent in open(word2id_path, 'r', encoding='utf-8').readlines():
    (word, id) = sent.replace('\n','').strip().split()
    word2id[word] = int(id)

In [38]:
id2word = []
for word, _ in word2id.items():
id2word.append(word)

제가 가진 데이터는 .txt 파일이고
<
유성민은더보기실어요..
백철 아저씨 찍어야겠다 중국북한몽에 패미당인 더민당도 싫고 담배값인상에 의료민영화 추진하는 외놈당도 싫다
조국대전이라고 하면 어느쪽이 좋아할까 교묘히 미통당을 도와주네 기래기들
여긴 강선우가 너무 엉터리인데...김새는 싸움이...
..... >

이런 형태의 텍스트가 쭉 나열돼 있습니다.
이 파일의 경로를 코드의 'word2id_path' 부분에 그대로 넣으면 에러가 나는데요,
----> 3 (word, i) = sent.replace('\n','').strip().split()
ValueError: not enough values to unpack (expected 2, got 1) 입니다.

아마도 데이터 형태가 코드에 맞지 않는 것 같은데, 어떻게 고쳐야 할지요?

@hyeonjiK 님 안녕하세요. 부족한 책인데 관심 가져주셔서 감사드립니다.
아래 주소로 메일 주시면 제가 아는 한 성심껏 답변해 드리겠습니다.