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값, 즉 감상평과 긍부정의 튜플을 반환하도록 했다.
이제야 제대로 된 학습 데이터 셋이 되어 문장으로 긍부정 학습을 시킬 수 있게 되었다.
이후 포스팅에서는 다른 글을 우선적으로 올릴 예정이다.
'Studying > Python' 카테고리의 다른 글
[파이썬] input() vs sys.stdin.readline() (1) | 2023.06.14 |
---|---|
[Python] 웹 크롤링 데이터 클래스를 사용해 구조화해서 접근하기 (0) | 2022.06.06 |
[Python] 웹 크롤링 해보기( 네이버 영화리뷰 크롤링) (0) | 2022.06.06 |
[Python] Closure 설명, 사용 방법 및 예제 (0) | 2022.05.31 |
[Python] 내장함수 sorted 구현 (0) | 2022.05.24 |
댓글