본문 바로가기
Studying/Python

[Python] 네이버 영화리뷰 학습 데이터 셋 만들기

by giem 2022. 6. 6.
반응형

2022.06.06 - [Studying/Python] - [Python] 웹 크롤링 데이터 클래스를 사용해 구조화해서 접근하기


위의 포스트에서 제작한 데이터 셋은 csv파일을 모두 조회하긴 하지만

학습에 바로 사용되기에는 부족한 점이 많다.

 

따라서 위 포스트의 클래스를 상속하여

네이버 영화 리뷰 데이터셋을

학습용으로 만드는 클래스를 구현해보려고 한다.

 

클래스의 구현은 다음과 같다.

 

 - 이전 포스트의 클래스를 상속받아야 함

 

 - 생성자의 인자는 부모의 인자와 integer타입의 score_threshold를 받는다.

 

 - 부모의 indexing을 재정의 한다.(overriding)

  인덱싱 결과 값은 (감상평, 긍부정)으로 (str, bool) 형태의 튜플이다.

  점수가 score_threshold 이상이면 긍정(True), 아니면 부정(False)다.

 

그러면 코드를 보겠다.

 

class MovieReview(RawMovieReview):
  def __init__(self, score_threshold:int, file_name: str = "samples.csv"):
    super().__init__(file_name)
    self.st=score_threshold

  def __getitem__(self, index):
    positive = True
    if int(super().__getitem__(index)[1]) < self.st : # threshold 이상인 것만 긍정으로 
      positive = False

    return (super().__getitem__(index)[2], positive)

mr = MovieReview(10) #10점이상인 것만 긍정으로 

print(mr[5])

i=0
for data in mr:
    print(data)
    i+=1
    if i ==10:
        break

 

이번에도 상속을 사용했기 때문에 처음 보는 부분들이 많을 것이라고 생각한다.

 

우선 class 이름 옆의 괄호에 상속받을 클래스 이름을 써주었다.

 

또 생성자 부분에 super()를 써주었는데 이것은 부모의 클래스를 뜻한다.

 

__getitem__ 메소드 즉, 인덱싱 부분에서 긍부정 (True, False)을 심어주었다.

 

부모의 데이터셋에서 가져온 값의 [1]의 값을 threshold와 비교하여 positive에 True, False 값을 준다.

 

그리고 부모의 [2]번과 positive값, 즉 감상평과 긍부정의 튜플을 반환하도록 했다.

 


 

이제야 제대로 된 학습 데이터 셋이 되어 문장으로 긍부정 학습을 시킬 수 있게 되었다.

 

이후 포스팅에서는 다른 글을 우선적으로 올릴 예정이다.

 

 

 

반응형

댓글