huginn muninn

[ABAE] train.py 에러 해결하기(ing 상태), 데이터 전처리 - 1 본문

자연어 처리/ABAE

[ABAE] train.py 에러 해결하기(ing 상태), 데이터 전처리 - 1

_maddy 2023. 2. 27. 21:01

 

 

나의 연구 목표는 한국어 AE(Aspect Extraction)구현, 호텔 리뷰 aspect 추출이다. 이를 위해 Unsupervised Aspect Extraction 방법을 사용하려고 한다. 내가 참고한 논문은 <An Unsupervised Neural Attention Model for Aspect Extraction>

으로 깃허브 코드는 https://github.com/ruidan/Unsupervised-Aspect-Extraction이다.

 

여기서 깃 클론 해와서 VScode에서 천천히 코드 돌려보고 있는데 깃에 대한 지식도 부족한데다,, 본 논문에서 구현한 코드가 비교적 옛날(2017년) 파이썬 버전이나 모델 버전이 현재 나의 환경하고 안 맞아서 그런지 train.py도 안 돌아가서 모델 자체를 실험해 볼 수 없는 상태... 에러를 해결하는데 많은 시간이 걸릴 것으로 예상이 된다. 

 

 

 

 

1. 너 덕분에 다른 에러는 놀랍지도 않아 Theano야.. 

 

 

일단 지금까지 나타난 다른 에러는 모두 고쳤는데 import Theano가 안되는 상태.. Theano가 뭔지도 모르는데 (사용해 본 적이 없음) 이게 문제여서 코드가 안 돌아간다니 미칠 지경이다. Theano도 깔고 스택오버플로우에 검색도 해보고 미친 듯이 찾아봤지만 해결이 아직도 안 됨.. 혹시 서로 충돌해서 그런 건가 싶어서 껐다가 켜도 이 상태(욕이 나온다)

 

에러. 왜 안되는건데,

 

안 되겠다 싶어서 종종 나를 구원해 주는 ChatGPT에게 에러를 물어보았음

ChatGPT에게 물어본 나의 에러

theano unintall 후 다시 설치해봐야겠다...

 

 

 

거의 5시간째 unintall 중인 theano

 

5시간째 unintall 중ㅋ  이거 왜 이리 오래 걸리나 확인해 보니까

내가 설치한 것들 다 uninstall되게 생김.. 갑자기 너무 오싹해져서 바로 중단시킴.  

 

연구에 사용할 데이터 전처리나 하기로 했다.

 

 

2. 데이터 전처리 : 리뷰 문장 분리해서 새로운 데이터 만들어주기

 

내가 전처리 할 건 그냥 긴~ 리뷰들 여러 개의 문장으로 이루어진 리뷰를 문장 분리해 줘서 새로운 데이터를 만드는 것. 

 

"난 오늘 밥을 먹었다. 그리고 따릉이를 타고 연구실에 도착했다. 도착하자마자 웹툰을 봤다."

->

"난 오늘 밥을 먹었다. "

"그리고 따릉이를 타고 연구실에 도착했다. "

"도착하자마자 바로 웹툰을 봤다."

 

 

로 분리해야 한다. 

일단 문장 분리를 위해서 한국어 문장 분리에 탁월하다는 kss를 사용하였다. 깃허브에서 이에 대한 설명을 볼 수 있으니 링크 참고 바람~

https://github.com/likejazz/likejazz.github.io/blob/66d9164e2922230fa3f895774a163444a178be41/_posts/2019-08-18-kss.md

 

저번 연구를 위해 수집했던 데이터이다. 이렇게 생김. 

아 물론 변수들이 훨씬 더 많지만 이번 연구에서 사용하는 변수는 이거 세 개뿐일 것 같아서 이렇게 세 개만 가져왔다. 호텔이름, 리뷰, 별점. 

거진 20000개로 이루어진 데이터인데 리뷰를 문장 분리하여 추가함으로써 양이 더 커질 것이다. 

 

new_rows=[]

for index,row in df.iterrows():
  sentences=kss.split_sentences(row['review'])
  for sentence in sentences:
    new_rows.append({'Hotel_name':row['Hotel_name'],
                     'review':sentence,
                     'rate':row['rate']})
  
new_df=pd.DataFrame(new_rows)

 

오... 20000개였는데 거의 60000개 됨. 

그나저나 이 글 쓰고 있는 도중에도 Theano uninstall 안됨. 내일 연구실 다시 와서 봐야겠다.. ㅠㅜㅠㅜ