원문은 alibaba 변수에, 단어와 빈도수는 vocab 딕셔너리에 저장합니다. 아직 넣을 단어가 없으므로 vocab은 빈 딕셔너리로 만듭니다. 그런 다음 원문을 저장한 alibaba 변수를 split()으로 분리합니다. split()을 실행하면 분리된 결과가 리스트에 담기는 것을 기억하죠? 분리된 결과를 담은 리스트를 word_list에 저장합니다.
alibaba = " in a town of persia lived two brothers , sons of a poor man; one named cassim , the other alibaba . cassim , the elder…"
vocab = {}
word_list = alibaba.split()
이제 분리된 단어와 빈도수를 vocab 딕셔너리에 넣어 줄 차례입니다. 현재 word_list에는 수많은 단어가 있습니다. alibaba를 예로 들어 보겠습니다. alibaba가 vocab 딕셔너리에 없다면 alibaba를 키로 추가해야 합니다. alibaba의 첫 등장이므로 빈도수는 당연히 1이 되죠. 이는 vocab 딕셔너리에 단어를 키로 하는 요소가 없다면 vocab[단어] = 1로 요소를 추가해야 한다는 뜻입니다. 두 번째 alibaba를 만나면 이미 딕셔너리에 alibaba를 키로 하는 요소가 있으므로 해당 요소의 빈도수에 1을 더해야 합니다. 즉, vocab[단어] += 1을 해야죠. 이 작업을 word_list에 들어 있는 모든 단어에서 실행합니다. 따라서 word_list의 첫 단어부터 마지막 단어까지 vocab 딕셔너리에 있는지 반복해서 확인하는 작업이 필요합니다. 이 부분을 정리하면 다음과 같습니다.
word_list의 첫 단어부터 마지막 단어까지 반복하기
단어가 vocab 딕셔너리의 키에 없으면
vocab[단어] = 1
단어가 vocab 딕셔너리의 키에 있으면
vocab[단어] += 1