기본 콘텐츠로 건너뛰기

라벨이 주피터 노트북인 게시물 표시

주피터 노트북(jupyter notebook)에서 "TypeError: 'set' object is not callable" 문제가 생겼다

아래와 같은 코드를 주피터 노트북으로 실습할 때 문제가 생겼다. a = [1,2,3,3,4,5,5,6,7] print(a) print(set(a)) * 이 예제의 출처는 주피터 노트북 - 딕셔너리(dictionary), set 이를 실행하면 다음과 같은 결과를 보여줘야 한다. [1, 2, 3, 3, 4, 5, 5, 6, 7] {1, 2, 3, 4, 5, 6, 7} 그런데 다음과 같은 결과가 나왔다. [1, 2, 3, 3, 4, 5, 5, 6, 7] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Input In [25], in <cell line: 3>() 1 a = [1,2,3,3,4,5,5,6,7] 2 print(a) ----> 3 print(set(a)) TypeError: 'set' object is not callable 이런 문제에 봉착하면 통상 구글링을 해 보는데, '한국어' 검색에서는 참고할 만한 결과가 나오지 않았다. "TypeError: 'set' object is not callable"로 구글링 했을 때 검색된 첫 결과물에서 해결책을 찾을 수 있었다. 해결책은 너무 간단했다. 커널을 다시 시작하라.  이렇게 처리하니 제대로 값이 나왔다. 그런데 왜 이게 문제가 되었나 싶었는데, 세트 항목을 연습하면서 세트 하나의 이름을 set으로 설정해 놓고 set(a)라고 했으니 코드 내에 충돌이 있어서 Error가 생긴 것이었다. 아주 초보적 실수도, 코딩 초보자에게는 해결이 난감한 문제일 수 있다. 오늘도 하나 배웠네.

자연어 처리(Natural Language Processing, NLP)로 텍스트 다루기 (1)

디지털 자료를 다루는 데 빠뜨릴 수 없는 기술 중 하나가 자연어 처리(Natural Language Processing) 기술이다. 여기서 '자연어'란 컴퓨터 언어에 대비되는 인간의 언어를 말하는 것으로 우리가 일상에서 사용하는 말(소리, 텍스트 등)을 뜻한다. 챗봇이나 AI 스피커 등에 쓰이는 기술이 NLP 기술인데, '디지털 인문학' 분야에서 기본적으로 사용하는 분석 기법이기도 하다. 디지털 텍스트 자료를 수집해서 이를 분석한다면 바로 NLP 기술을 적용해서 해야 한다. 종교문화 연구에도 적용이 가능하리라 생각한다. 어쨌든 NLP도 웹스크래핑과 함께 공부를 시작했다. Python 공부를 하면서 수업 시간에 종종 사용했던 주피터 노트북(jupyter notebook)을 활용해서 관련 책을 보면서 연습을 했다.  (그냥 하는 소리지만 '주피터 노트북' 이야기를 처음 들었을 때는 '노트북 컴퓨터'를 떠올렸다. 몇 번 맛을 보고 시간이 흘러 사용한 것을 까먹을 때 쯤에는 파이썬 IDE 중 하나인 파이참이나 비쥬얼 스튜디오 같은 프로그램이라고 생각했다. 수업이나 관련 책에서 '주피터 노트북'을 준비하세요라는 말을 들을 때마다 '어 어떻게 깔지'라는 생각부터 했다. 근데 컴퓨터에 이미 깔려 있어서 '뭐지?'했던 기억이... '아나콘다' 깔면서 사용할 수 있게 되었던 것인 듯. 뭐 IDE 중 하나긴 한데, 웹브라우저에서 구동해서 구글의 코랩colab 같은 종류로 느껴진다. 실제로 교육 현장에서는 jupyter나 colab을 많이 쓰는 듯. colab은 클라우드 기반이라 협업-그래서 Colaboratory 의 앞글자로 colab이라 한 것-에 강점을 가진다고 한다. 참고 ) ━━━━━━ 문장이 있으면 단어들의 일부를 뽑을 수도 있고(3행은 위 문장에서 짝수 번째 단어를 추출한 것이다), 특정 단어만 뽑을 수도 있고(아래), 글자의 순서를 뒤바꿀 수도 있다.