빅데이터분석기사 필기 · 12회 변형(엑셀) · 어려움 난이도 · 4번

Q.4202612어려움 변형빅데이터 분석 기획

다음 <보기>의 상황에 대한 설명으로 가장 적절한 것은?

보기

분석가는 쇼핑몰 상품 페이지에서 상품명을 추출하기 위해, 정규표현식 <div class="item">(.*?)</div> 을 사용하였다.

그러나 실제 HTML에서 상품명 영역은 아래와 같이 내부에 또 다른 <div>가 임의의 깊이로 중첩되어 있었고, 그 결과 추출 값이 엉뚱한 위치에서 잘리는 오류가 반복되었다.

<div class="item"><div class="tag">신상품</div>무선 이어폰</div>

이에 분석가는 정규표현식 대신 HTML 파서(BeautifulSoup)로 전환하여 문제를 해결하였다.

  • 1정규표현식의 최소 일치(lazy) 수량자를 최대 일치(greedy) 수량자로 바꾸면 중첩 깊이와 무관하게 올바른 상품명을 추출할 수 있다.
  • 2정규표현식은 유한 상태 기계로 표현되는 정규 언어만 인식하므로, 임의 깊이의 중첩 구조를 갖는 HTML은 원리상 처리할 수 없고 문맥 자유 문법을 다루는 파서가 필요하다.
  • 3HTML은 정규 언어에 속하지만 태그 속성의 순서가 고정되어 있지 않기 때문에 정규표현식이 실패한 것이며, 속성 순서를 정규화하면 해결된다.
  • 4파서는 문서를 토큰 단위로 나누어 순차 탐색할 뿐 계층 구조를 만들지 않으므로, 정규표현식보다 단순히 탐색 속도가 빠른 것이 전환의 이유이다.

정답: 2 · 정규표현식은 유한 상태 기계로 표현되는 정규 언어만 인식하므로, 임의 깊이의 중첩 구조를 갖는 HTML은 원리상 처리할 수 없고 문맥 자유 문법을 다루는 파서가 필요하다.

해설
해설 불러오는 중…
이 회차 문제 풀어보기 →빅데이터분석기사 필기 더 풀기