-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
코드 해석 문의
20.03.22 19:27 작성 조회수 140
1
안녕하세요. 강의 너무 잘 듣고 있습니다.
아래 코드가 대충 어떤 의미인지는 이해가 가는데 정확히 알고 싶어서요. 아래 코드 해석 좀 해주실 수 있을까요?
# 5. Stopwords 불용어 제거 meaningful_words = [w for w in words if not w in stops] # 6. 어간추출 stemming_words = [stemmer.stem(w) for w in meaningful_words]
답변을 작성해보세요.
0
박조은
지식공유자2020.03.22
안녕하세요.
5번 불용어제거는 "나, 너, 그리고, 나는, 너는 ..." 과 같이 자주 등장하는 단어는 stops 에 담아두고 해당 단어가 아닐 때만 다시 리스트 컴프리헨션으로 담는 코드 입니다.
불용어를 제거하는 이유는 불용어는 자주 등장하지만 큰 의미를 갖지 않기 때문에 빈도수만 봤을 때 중요하다 여길 수 있으나 의미가 적기 때문에 제거하는 것이고요.
리스트 컴프리헨션은 다음 링크를 참고해 보시면 좋을거 같아요.
https://dojang.io/mod/page/view.php?id=2285
6. 어간추출은
fly, flying 등 은 날다, 파리, 비행기 등의 의미를 가지는데 형태가 변형되어 있는 것을 원형상태로 만드는 것을 의미해요.
예를 들면 flying 은 fly로 만드는데 stemer도 종류가 여러가지에요. nltk 에서도 스노우볼스테머, 랭카스터 스테머 등 다양한 스테머를 제공하는데 스테머에 따라 원형을 추출을 다르게 해요. 예를 들어 movie => movi 로 추출하기도 하는데 원형을 꼭 유지하지 않지만 변형된 단어를 같은 형태로 만들어 줍니다.
stemming 외에도 lemmatizing이 있는데 lemmatizing 은 원형을 보존하게 됩니다.
이 부분이 좀 더 궁금하다면 다음 링크를 읽어보시면 좋을거 같아요.
https://ko.wikipedia.org/wiki/%EC%96%B4%EA%B0%84_%EC%B6%94%EC%B6%9C
답변 1