인프런 업데이트 소식 🔨👷🏼‍♂️
[NLP] IMDB 영화리뷰 감정 분석을 통한 파이썬 Python 텍스트 분석과 자연어 처리

[NLP] IMDB 영화리뷰 감정 분석을 통한 파이썬 Python 텍스트 분석과 자연어 처리

(8개의 수강평)

1944명의 수강생

16,500원

평생
초급, 중급
17회 수업, 총 3시간 30분
위시리스트 추가
송윤호 프로필

튜토리얼1의 2/4 강의 중 lemmatize 관련 질문드립니다 송윤호 2일 전

lemmatization이란게 동음이의어가 있을 때, 문장의 앞뒤 문맥에서 단어의 의미를 찾는 것이라는 설명을 봤는데요. 여기 예제처럼 문장을 토큰화 해놓으면 앞뒤 문맥을 파악할 수 없는것 아닌지 궁금합니다! 그리고 여러가지 stemmer 들의 장단점이 있을텐데 그러한 설명도 해주셨으면 좋겠습니다! snowballstemmer를 이 상황에서 쓰신 이유같은 것이요!  

1
서정아 프로필

자꾸 올려서 죄송해요 -.,- 서정아 1달 전

저 튜토리얼 3 이후의 부분도 colab 링크 얻을 수 있을까요?

 

이 부분이 또 무한루프처럼 계속 돌아서 결과를 볼수가 없네요.., ㅠㅠ 

다음 진도를 뺼수가 없어요. 으악 ㅠㅠ

 

↓↓↓

# 단어 벡터에서 k-means를 실행하고 일부 크러스터를 찍어본다.

start =time.time() # 시작시간

 

# 클러스터의 크기 "k"를 어휘 크기의 1/5이나 평균 5단어로 설정한다.

word_vectors = model.wv.syn0 # 어휘의 feature vector

num_clusters = word_vectors.shape[0] / 5

num_clusters = int(num_clusters)

 

# K means를 정의하고 학습시킨다.

kmenas_clustering = KMeans( n_clusters = num_clusters )

idx = kmenas_clustering.fit_predict(word_vectors)

 

# 끝난시간에서 시작시간을 빼서 걸린 시간을 구한다.

end = time.time()

elapsed = end - start

print("Time taken for K Means clustering: ", elapsed, "seconds.")

 

1
서정아 프로필

수업을 따라가는데 있어서 어려움 서정아 1달 전

tutorial 2부터 강사님이 해주시는데로 따라하는데 생각되로 안되거나 문제가 발생되는 경우가 많네요..,ㅠ

첫번째로 이전에 올렸던 multiprocessing 관련 코드 부분도 그렇고

 

두번째는 KaggleWord2VecUtility 이 부분은 제가 관련 소스를 찾아서 로딩을 하고

중간에 apply_by_multiprocessing 관련 함수도 있어서 이 함수가 들어간 소스를 찾아 중간에 소스도 수정해서 다시 import를 했습니다.

그리고 마지막으로 세번째는 word2vec모델을 학습시키는데 있어서 정말 엄청나게 많은 시간이 걸렸습니다.

 

* p.s.

그냥 강사님이 올려주신 colab을 바탕으로 실습안하고 눈으로만 보는게 나을까요? ㅠㅠ

실습하는데 어려움이 너무 많이 따르네요.., ㅠㅠ

저는 처음 수업을 시작했을 때 생각은 머신러닝 관련된 기법에 대해서 이해하는 방향으로 수업을 듣고 이해하고 싶었는데,

텍스트 데이타라는 비정형 데이터의 처리법의 어려움 때문인지 아니면 관련 처리를 하는 라이브러리를 다루는데 있어서 어려움 때문인지.., 머신러닝 기법들의 개념들이 정리가 안되고 갈수록 어렵네요.., ㅠㅠ

시간이 오래걸리거나 하는 라이브러리라던가 아니면 수업 중 애로사항들은 개선이 되었으면 합니다.

뭔가 많이 아쉽습니다. ㅠㅠ

 

/******************************************************/

↓ 관련 내용들

/******************************************************/

prob 3> word2vec모델을 학습

: 거의 15시간 하루에 반나절 가량 걸렸던 것 같습니다.

len(sentences) 가 795538 인데

데이타 양이 많아서 이렇게 오래걸리는건가요? 이 정도로 시간이 오래 걸리는게 맞나요?

그리고 학습을 시킨 후 모델결과를 탐삭해는데 있어서 데이타가 stemming 처리가 안됬는데 이 부분은 제가 앞에서 처리를 잘못한 문제일까요? 모델 학습시키는것과 관련이 있나요?

 

제가 궁금한거는 ① 학습시간이 15시간이나 걸림. 이렇게 오래 걸리는게 맞음?

그리고 ② stemming 처리가 안됨. 모델 학습관련 문제인지 아니면 앞전에서 내가 무언가 처리를 빠뜨린건지?

입니다.

 

 

prob 2> KaggleWord2VecUtility.apply_by_multiprocessing?

관련 함수가 있는 소스를(KaggleWord2VecUtility.py) 다시 구글링에서 찾은 후 저의 현재 작업디렉토리에 해당 파일을 열어 해당 소스로 수정해주고 해당 라이브러리를 다시 임포트 후 실행을 해도 계속 apply_by_multiprocessing 함수를 찾을수 없다는 에러가 나옵니다.

혹시 파이썬 노트북을 새로 고침해야 한다거나 아니면 파일을 지우고 다시 해당 파일을 다운받는다거나 하는 작업이 필요할까요?

새로고침을 하고 싶은데 앞전에 modelling에서 15시간가량 걸린작업을 또 해야 할 것 같은 두려움에 새로고침은 하지 못했습니다. 지금 이틀동안 노트북도 끄지 않았습니다. ㅠㅠ

어떤 문제인지 모르겠습니다.

1
서정아 프로필

KaggleWord2VecUtility 패키지 관련 서정아 1달 전

import가 되지 않아서 구글링을 해보았더니 KaggleWord2VecUtility.py 형태로 돌아다니는 소스가 있어서, 제 쥬피터 노트북에 그대로 소스를 복붙해서 실행시키긴 했는데 너무 지저분해져서, 아나콘다 lib 경로에 넣으면 실행될까 싶어서 시도해보았는데 이 방법으로는 import가 되지 않습니다.

 

from distutils.sysconfig import get_python_lib

print(get_python_lib())

하면 제 Anaconda3 의 python libliry가 있는 경로가 나오는데 여기에 해당 파일을 넣어서 import를 시도해보았지만 되지않습니다.

 

tutorial-part-2 강의에 1번째 강좌인데

from KaggleWord2VecUtility import KaggleWord2VecUtility

from distutils.sysconfig import get_python_lib

print(get_python_lib())

 

이 코드 이전에 설치를 해야한다거나 작업해줘야 하는거는 없는지요?

2
이준호 프로필

멀티 프로세스 코드가 작동하지 않습니다 이준호 1달 전

# 참고 : https://gist.github.com/yong27/7869662
# http://www.racketracer.com/2016/07/06/pandas-in-parallel/
from multiprocessing import Pool
import numpy as np

def _apply_df(args):
    df, func, kwargs = args
    return df.apply(func, **kwargs)

def apply_by_multiprocessing(df, func, **kwargs):
    # 키워드 항목 중 workers 파라메터를 꺼냄
    workers = kwargs.pop('workers')
    # 위에서 가져온 workers 수로 프로세스 풀을 정의
    pool = Pool(processes=workers)
    # 실행할 함수와 데이터프레임을 워커의 수 만큼 나눠 작업
    result = pool.map(_apply_df, [(d, func, kwargs)
            for d in np.array_split(df, workers)])
    pool.close()
    # 작업 결과를 합쳐서 반환
    return pd.concat(list(result))


%time clean_train_reviews = apply_by_multiprocessing(\
    train['review'], review_to_words, workers=8)  

%time clean_test_reviews = apply_by_multiprocessing(\
    test['review'], review_to_words, workers=4)    

 

위 코드를 돌리면 무한하게 돌아가고, cpu 사용량은 1자릿수로 유지됩니다.

2
서정아 프로필

multiprocessing 관련 서정아 1달 전

 

 

 

바로 앞의 코드에서 속도가 느려서 개선된 형태의 multiprocessing이 출력이 안됩니다. ㅠㅠ

메모리만 잡아먹고 계속 무한루프 상태가 지속되네요..,제가 코딩을 하면서 오류가 났을까 싶어서 

코랩에 있는 소스를 그대로 갖고와서 복붙해 실행을 해도 동일한 현상이 지속됩니다.

바로 앞의 속도가 느린 코드들은 시간이 걸리더라도 모두 실행이 됩니다.

 

 

1
송진영 프로필

제출 오류 송진영 1달 전

colab으로 작업한 뒤 csv를 제출하였는데 이러한 에러가 발생합니다.

 

어떻게 해야 해결할 수 있을지 잘 모르겠습니다. 도움을 부탁드립니다.

4
Ki-Sung Kim 프로필

br태그 정제 Ki-Sung Kim 1달 전

from bs4 import BeautifulSoup

 

example1 = BeautifulSoup(train['review'][0], "html5lib")

print(train['review'][0][:700])

example1.get_text()[:700]

이 코드를 실행하려고 하는데 

 

File "<pyshell#69>", line 1, in <module>

    example1 = BeautifulSoup(train['review'][0], "html5lib")

  File "C:\Users\Ki-Sung Kim\AppData\Local\Programs\Python\Python37-32\lib\site-packages\bs4\__init__.py", line 208, in __init__

    % ",".join(features))

bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: html5lib. Do you need to install a parser library?

 

이런식으로 에러가 납니다. 어떻게 해결 해야 하나요...

1
김지수 프로필

강좌 순서 김지수 3달 전

안녕하세요:) 강좌를 들으려고 하는데, 올리신 강좌들을 들을 때 추천 순서는 어떻게 되나요?

0
Hyunkyung Bae 프로필

nltk is not defined 에러메시지 Hyunkyung Bae 4달 전

KaggleWord2VecUtility 모듈을 호출해서 매서드 실행시키면 NameError: name 'nltk' is not defined 라는 에러 메시지가 뜹니다. nltk.download('punkt') 나 import nltk 를 해도 해결이 되지 않는데 조언 부탁드릴게요!

1
이해인 프로필

CountVectorizer 파라미터 값 질문 이해인 4달 전

안녕하세요.

countvectorizer의 파라미터 값에 대해 궁금해 질문 남깁니다.

찾아보니, tokenizer, analyzer, token_pattern 의 인수가 모두 토큰 생성기 선택에 관한 인수라고 나와있던데 각각의 인수가 뜻하는 게 뭔지 정확히 알고 싶습니다. 

찾아본 바로는

tokenizer: 함수 또는 None(default), 토큰 생성 함수
analyzer: 문자열 {'word', 'char', 'char_wb'} 또는 함수
token_pattern: string, 토큰 정의용 정규표현식

이라고 설명되어있던데 정확한 설명을 구할 수 없어 질문 드립니다. 답변 부탁드립니다.

0
임승경 프로필

강사님 질문이 있습니다! 임승경 7달 전

안녕하세요. 강사님이 올려주신 강의를 따라하며 텍스트 감성분석을 해보고 있는 학생입니다..

개인적으로 다른 사이트의 리뷰를 따로 정리해둔 데이터가 있는데 그 데이터를 test데이터 대신에 넣어서 실제로 활용해도 괜찮을까요? 제가 하고 싶은건 리뷰의 긍정 부정을 예측하는 것인데, 이것을 하기 위해 이 캐글의 튜토리얼을 적용해서 사용해도 결과가 나오는지가 궁금합니다.

그리고 튜토리얼1을 따라해보고 test데이터를 제가 가진 데이터로 바꿔서 해보았더니 결과가 생각보다 정확하게 나오지 않았는데, 정확도를 높이려면 어떤 튜토리얼이 더 좋은지 알고 싶습니다. 머신러닝을 처음 접하는 것이다 보니 질문이 구체적이지 못해서 죄송합니다.. 그리고 강의 감사합니다!

0
억대 개발자 프로필

stemming 후 의 lemmatization 억대 개발자 2018.09.21

강의에서 Lemmatization은 명사/동사 인지에 따라 적합한 의미를 갖도록 한다고 되어있는데, stemming 한 후에 lemmatization해서 나온 결과와 stemming 하기 전의 lemmatization의 결과가 다릅니다! 개인적인 생각은 하기전에 해야되지 않나 생각이 들어서요

예를들어 예시에 나온 meeting(회의의 의미를 가진) 은 stemming을 하면 meet가 되가 되어 lemmatization에서 동사의 의미를 갖게 되지 않나 싶습니다. 이 부분이 좀 헷갈리네요

0
박정규 프로필

'list' object has no attribute 'apply' 문의 박정규 5달 전

train['num_words'] = clean_train_reviews.apply(lambda x: len(str(x).split()))

이부분이 처리가 안되네요 ;;

파이참으로 하는데요 , AttributeError: 'list' object has no attribute 'apply' 라고 에러가 뜹니다....

1