더북(TheBook)

이 프로그램은 제인 오스틴의 소설 <엠마>의 텍스트가 담긴 emma.txt를 읽어 들인다.

process_file은 루프를 돌면서 파일의 각 줄을 처리하고, 한 번에 한 줄씩 process_line에 전달한다. 히스토그램 hist는 누산기로 사용되고 있다.

process_line은 문자열 메서드 replace를 사용해 하이픈(-)을 공백으로 바꾼 후에 split을 사용해 각 줄을 문자열의 리스트로 나눈다. 단어 목록을 순회하면서 striplower를 사용해 구두점을 제거하고 소문자로 변환한다(간단히 말해 문자열을 변환한 것이다. 문자열은 불변이므로 strip이나 lower 같은 메서드는 새로 만든 문자열을 반환한다는 걸 잊지 말자).

마지막으로 process_line은 새 항목을 생성하거나 기존 항목을 증가시키면서 히스토그램을 업데이트한다.

파일에 있는 단어의 전체 개수를 세기 위해 히스토그램에 빈도에 추가하자.

def total_words(hist):

return sum(hist.values())

단어의 개수는 사전에 있는 항목의 개수와 같다.

def different_words(hist):

return len(hist)

다음은 결과를 출력하는 코드의 일부분이다.

print('Total number of words:', total_words(hist))

print('Number of different words:', different_words(hist))

결과는 다음과 같다.

Total number of words: 161080 Number of different words: 7214

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.