반응형
신문이나 책에서 가장 많이 사용된 단어를 찾고 싶을때 유용한 모듈이다.
collections 의 Counter는 파이썬 모듈로 입력값으로 받은 값을 카운팅해서 dictionary 형태로 해당 단어와 단어가 사용된 횟수를 알려 준다.
리스트를 입력값으로 넣으면 리스트내의 값을 비교해주고 string으로 입력하면 한단어를 기준으로 파악해준다.
아래 코드를 통해 쉽게 이해해 보자
import re
import collections
paragraph = "윤석열 검찰총장에 대한 징계 심의를 \
하루 앞두고 오늘 법무부 감찰위원회가 긴급 소집됩니다.\
윤 총장에 대한 감찰이 타당한지 등을 논의할 전망인데, \
어떤 권고가 나올 지 주목됩니다.법무부 나가있는 취재기자 \
연결해 자세한 내용 들어보겠습니다.이재희 기자, 법무부 감찰위원회, 언제 시작됩니까?"
words = [word for word in re.sub(r'[^\w]', ' ', paragraph).split()]
print(words)
print("#######")
counts = collections.Counter(words)
print(counts)
print("#######")
print(counts.most_common(1)[0][0])
print("#######")
counts = collections.Counter("hi my name is what?")
print(counts)
print("#######")
결과>>
['윤석열', '검찰총장에', '대한', '징계', '심의를', '하루', '앞두고', '오늘', '법무부', '감찰위원회가', '긴급', '소집됩니다', '윤', '총장에', '대한', '감찰이', '타당한지', '등을', '논의할', '전망인데', '어떤', '권고가', '나올', '지', '주목됩니다', '법무부', '나가있는', '취재기자', '연결해', '자세한', '내용', '들어보겠습니다', '이재희', '기자', '법무부', '감찰위원회', '언제', '시작됩니까']
#######
Counter({'법무부': 3, '대한': 2, '윤석열': 1, '검찰총장에': 1, '징계': 1, '심의를': 1, '하루': 1, '앞두고': 1, '오늘': 1, '감찰위원회가': 1, '긴급': 1, '소집됩니다': 1, '윤': 1, '총장에': 1, '감찰이': 1, '타당한지': 1, '등을': 1, '논의할': 1, '전망인데': 1, '어떤': 1, '권고가': 1, '나올': 1, '지': 1, '주목됩니다': 1, '나가있는': 1, '취재기자': 1, '연결해': 1, '자세한': 1, '내용': 1, '들어보겠습니다': 1, '이재희': 1, '기자': 1, '감찰위원회': 1, '
언제': 1, '시작됩니까': 1})
#######
법무부
#######
Counter({' ': 4, 'h': 2, 'i': 2, 'm': 2, 'a': 2, 'y': 1, 'n': 1, 'e': 1, 's': 1, 'w': 1, 't': 1, '?': 1})
#######
words = [word for word in re.sub(r'[^\w]', ' ', paragraph).split()]
re.sub 은 정규식에서 \w(단어를 의미) 단어가 아닌 것은 한칸 띄운 공백으로 바꾸겠다는 의미이고 split()은 default로 공객을 기준으로 나눠주는 것이다.
반응형
'파이썬(Python) > 문법' 카테고리의 다른 글
sorted 와 key 값, lambda 사용법, 키 값으로 함수사용 (0) | 2020.12.02 |
---|---|
sort vs sorted 차이 join 함수 (0) | 2020.12.02 |
파이썬 list 와 슬라이싱(slicing) (0) | 2020.11.30 |
파이썬 replace, strip 함수란 (0) | 2020.11.27 |
continue, break, pass 차이 (0) | 2020.11.26 |