간단한 프로그램을 활용하면 문장에서 욕설 등 부적절한 단어를 별표(*)로 바꿔 검열 처리할 수 있습니다.
예를 들어 다음과 같은 문장이 있다고 가정해 보겠습니다.
"Go feed all the ducks in the lake"
여기서 'ducks'라는 단어를 별표로 바꾸고 싶다면, 최종 결과물은 다음과 같은 형태가 됩니다.
"Go feed all the ***** in the lake"
파이썬에서는 내장 함수인 replace()를 사용하면 이 기능을 아주 간단하게 구현할 수 있습니다. 핵심 포인트는 교체할 별표의 개수를 원래 단어의 길이와 동일하게 맞추는 것입니다.
예제 코드
def replaceWithAsterisk(sent, word):
# replace 함수로 해당 단어를 찾아,
# 단어 길이와 같은 개수의 별표로 교체합니다.
return sent.replace(word, "*" * len(word))
sent = "Go feed all the ducks in the lake"
censored_sent = replaceWithAsterisk(sent, "ducks")
print(censored_sent)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Go feed all the ***** in the lake
코드 동작 원리
이 코드의 핵심은 "*" * len(word) 부분입니다. 파이썬에서는 문자열에 정수를 곱하면 해당 문자열이 그 횟수만큼 반복됩니다. 따라서 'ducks'는 5글자이므로 '*****'가 생성되어 원래 단어를 대체하게 됩니다.
한 가지 주의할 점은 replace() 함수가 대소문자를 구분한다는 것입니다. 예를 들어 'Ducks'와 'ducks'는 서로 다른 단어로 인식되므로, 두 경우 모두 처리하려면 문장을 소문자로 변환한 뒤 비교하거나 정규식(regular expression)을 활용하는 것이 좋습니다.