python3
- FC online 개인 프로젝트
👉 프로젝트 Github 바로가기
result_list = []
for sentence in comment_list:
okt_token = okt.pos(sentence)
# 한국어, 숫자, 영어만 남기기
result = []
for token, pos in okt_token:
if re.match('^[a-zA-Z가-힣]+', token):
result.append((token,pos))
# 결과 리스트에 저장
result_list.append(result)
# 1차원 리스트로 변환(flatten)
tokens_list = [item for sublist in result_list for item in sublist]
tokens_list
[ 논리 과정 ]
- 하나의 선수카드 리뷰 당 해당 리뷰를 구성하는 형태소와 품사를 Tuple형식으로 리스트에 저장
- 모든 리뷰 대상으로 위 작업을 실행하고 해당 리스트들을 최종 리스트에 저장
- 리스트 안의 리스트가 포함되므로 이후 스톱워드를 제거하는 작업에 불편함을 겪음(반복문으로 형태소를 1개씩 점검해야함)
- 최종 리스트를 1차원 리스트도 변환해줘야한다.
[ 문제 상황 ]
- 최종 리스트가 1차원이 아닌 다차원이다. (리스트 안에 리스트가 존재한다.)
- 따라서 스톱워드 제거 작업에 바로 활용할 수 없다.
[ 해결 ]
- for문을 활용한 리스트 컴프리헨션으로 리스트 안의 리스트 요소를 꺼내서 새로운 리스트를 만든다.
- for문을 두 번 작성한다.( 1. 리스트 안의 리스트 반환 2.리스트 안의 리스트에서 요소 반환)
[ 회고 ]
- 컴프리헨션 문법은 자료구조를 유연하게 다룰 때 주로 사용한다.
'DA Study > TIL' 카테고리의 다른 글
[TIL] 감정 분석 - 토큰별 Polarity 값 추가하기 #python3 #FC온라인 (0) | 2025.01.04 |
---|---|
[TIL] 조건 비교를 위한 IN / EXISTS 구문 활용(서브쿼리) # MySQL # SQL (2) | 2025.01.03 |
[TIL] 비트연산자를 활용한 이진수 비교 # MYSQL # SQL (1) | 2025.01.01 |
[TIL] SUM함수, CASE WHEN ~ THEN 구문 활용 #SQL #SQLite #solvesql (1) | 2024.12.30 |
[TIL] PERCENT_RANK() OVER() 윈도우 함수 활용 # MYSQL (1) | 2024.12.28 |