REP - VULGAR - 001, MARCH 2009 1 비속어표준형변환알고리즘을이용한인터넷비속어검출시스템 Internet Vulgarity Detecting System by Using Algorithm to Transform Modified Vulgar words to Basic Type 윤태진 Yoon Taijin 부산대학교컴퓨터공학과 ytj@pusan.ac.kr ABSTRACT 한글비속어의경우그종류가많고변형방법이다양하여일반적인기법으로는검출이어렵다. 방대한비속어와그에파생되는변형어를모두데이터베이스화하는데는큰어려움이있으며지나치게많은데이터를일반적인 string matching 을수행할경우많은부하를발생시켜서클라이언트프로그램이나서버에지연현상을초래할수있다. 게다가지나치게비속어를막는데만중점을둔나머지정상적인단어를입력해도비속어로판정해서사용자간의원활한의사소통을방해하는문제를발생시키기도한다. 이러한문제점을해결하기위해서는두가지조건이필요하다. 먼저변형에강한검출기법이다. 비속어는다양한변형을통하여기존의필터링시스템을피해사용되고있으나그변형방식에는일정한규칙이존재한다. 이러한규칙성을이용하여입력된단어의표준화를통해변형에강한검출이가능하다. 둘째로효과적인자료구조이다. 계층적인자료구조를이용하여표준비속어, 파생비속어를저장하여검색횟수를줄이는방법을제안한다. KEYWORDS vulgar, spam filtering, language processing 1 서론 인터넷의발달로채팅과인터넷게시판의유저는남녀노소계층을불문하고폭발적으로증가하였다. 다양한계층과사고방식을가진사람들이서로대화를나누게되는인터넷의특성상분쟁이자주발생하게되고그과정에서여과없이사용되는비속어는사용자들에게큰불쾌감을주고미성년자인사용자들에게악영향을주고있다. 그래서온라인게임과게시판등에서는비속어필터링기능을제공하고있는데여기에는큰두가지문제점이있다. 첫째, 욕의변형형에대해서올바르게작동하지못한다. 다양한발음을가지고있는한글의특성상단어에대해서비슷한발음을가지는다른형태로다양한변형이가능하다. 바보 라는단어를필터링한다고하였을때비속어를사용하고자하는사용자는이단어를사용해서필터링기능에제지당한다고해도 바버, babo 등변형된욕을사용하여필터링기능을무력화시킨다. 특히외계어라고불리는인터넷특유의한글파괴현상과맛물려형태가비슷한특수문자, 한자, 외국어등을조합해서
REP - VULGAR - 001, MARCH 2009 2 비속어를표현하면단순한필터링기능으로는제재가불가능하다. 이러한비속어는사용하기불편하 다는단점이있으나최근에는필터링되지않는변형된형태의욕을매크로에저장해서온라인분쟁시 사용하는경우도있다. 그림 1. 모인기게임의채팅장면. 인터넷에서사용되는비속어문제는심각하다. 그 러나비속어는변형되어사용되는경우가많아필터링이쉽지않다. 둘째, 오히려정상적인단어를필터링하는경우가있다. 모온라인게임의필터링시스템의경우 상자위에적이있다. 라는문장을입력할경우 자위 라는단어를필터링하여정상적인대화를어렵게한다. 그래서원활한대화를위해서변형된단어나은어를사용해야하는모순이발생하게된다. 몇몇유저들은비속어를제대로검출하지못하면서대화에불편함만준다하여이러한비속어필터링시스템을반대하기까지한다. 올바른국어사용을권장하기위해만들어진시스템이오히려한글파괴를부추기게되는것이다. 기존시스템이가지고있는문제점을해결하기위해서가장중요한것은변형에강한검색기법이다. 이것을위한가장확실한방법은가능한모든변형을포함하고있는비속어사전을만들어서비속어검출에활용하는것이다. 그러나다양한발음을가지고있는한글의특성상매우다양한변형방법이존재하고최근특수문자와알파벳까지동원하는변형방식이나오고있어현실적으로어렵고사전의데이터가지나치게방대해지면사전을유지하기위한요구메모리양과검색에필요한연산량이늘어나서시스템에큰부하를걸게된다. 수많은사용자가접속하는인터넷서버의특성상비대한비속어처리시스템을사용할경우심각한지연현상을초래하여사용자에게큰불편을가져올수
REP - VULGAR - 001, MARCH 2009 3 있다. 그러므로이문서에서는표준형태와최소한의파생어만을입력하고변형형태의욕에서변형에 사용되는규칙을연구하여규칙을이용하여표준형태로바꿔서대조해보는방법을제안한다. 그리고 비속어필터링에필요한데이터를효과적으로검색할수있는데이터구조에대하여서술한다. 2 표준화를통한매칭기법 일반적인비속어필터링시스템에서가장취약한부분은변형된비속어를입력하는경우라할수있다. 특히한글의경우조합비속어는수많은변형형태를지닐수있고그러한변형된형태로사용될경우단순한 string matching으로는검출해내기어렵다. 가능한변형형태를모두데이터베이스화하는방법이있을수있겠으나어디까지나부가적인모듈이되는비속어필터링기능이지나치게시스템이큰부하를가하게되면시스템의성능을저하시켜사용자에게불편을끼치게된다. 그러나다양한변형형태를지니고있다고는하나변형된형태를살펴보면어느정도일관된규칙을찾을수있다. 표 1. 발음을이용한변형예기본단어변형단어개새끼개새기, 개새뀌, 개색기, 개색휘, 개색히, 개세이, 개쉐리, 개쉐이, 개색개놈개뇸, 개눔, 개늠, 개넘, 개너므, 게넘, 게넘, 게놈, 게뇸, 게눔, 게늠, 궤놈병신뱅쉰, 뱅싄, 벵신, 벵틴, 병시인, 붱신, 붱싄, 븅신, 븅쉰, 비융신씨팔쉬발, 쉬밸, 쉬뱅, 쉬벌, 쉬벧, 쉬볼, 쉬불, 쉬빌, 쉬파, 쉬팍, 쉬팔, 쉬팕, 쉬팡불알붕알, 부랄, 부럴, 브랄, 브라알, 블알, 뽕알, 뿡알 가장일반적으로사용되는변형형태는비슷한발음형태로변화시키는것이다. 예를들어욕으로많이사용되는 개 라는단어의경우 걔, 궤, 캐, 컈 등의발음으로변형되어사용되는경우가많다. 자음의경우된소리, 쎈소리등으로변화시키는경우가많고모음의경우유사한발음군으로변화시켜사용하게된다. 이렇게변화로주로사용되는자소들을통합하여대표되는발음으로표준화시켜서검색한다면발음을이용한변형사용을막을수있다. 표 2은본시스템에서사용되는표준화규칙을나타낸표이다. 모음의경우된소리, 쎈소리를기본발음으로통합하였으며모음의경우비슷한발음이라생각되는것들을하나로통합하였다. 이표준화만으로도인터넷에서사용되는비속어변형형의상당수를필터링가능하게되는것을알수있다. 본표는본인의지식및경험을통해만들어진표이므로추가적인연구를통하여통계학적인근거를마련하여더욱정확한규칙을만들필요가있을것이다.
REP - VULGAR - 001, MARCH 2009 4 표 2. 비속어의표준화를위한변형규칙 초성 중성 종성 원래자소바뀐자소 원래자소 바뀐자소원래자소바뀐자소 ㄱ, ㄲ, ㅋ ㄱ ㅏ, ㅑ ㅏ ㄱ, ㄲ, ㅋ ㄱ ㄷ, ㄸ, ㅌ ㄷㅐ, ㅒ, ㅔ, ㅖ, ㅙ, ㅚ, ㅝ, ㅞㅐㄷ, ㅌ, ㅅ, ㅈ, ㅉ, ㅊㄷ ㅂ, ㅃ, ㅍ ㅂ ㅓ, ㅕ ㅓ ㅂ, ㅍ ㅂ ㅅ, ㅆ ㅅ ㅗ, ㅛ ㅗ ㅈ, ㅉ, ㅊ ㅈ ㅜ, ㅠ ㅜ ㅟ, ㅢ, ㅣ ㅣ 다른변형방법으로는비속어의글자사이에무의미한빈칸이나기호등을포함시켜필터링을피하는방법이있다. 멍청이 를 멍청이 나 멍, 청, 이 로쓰게된다면사람은같은단어라는것을판단할수있으나컴퓨터의경우다른단어로받아들여필터링을피해갈수있는것이다. 이것을해결하기위하여 global alignment가아닌 local alignment를이용하여단어간의유사도를판단하여비속어를판정하는방법을사용한다. 예를들어 멍청이 와 멍-청-이 의경우 matching score를 1.0 으로잡고 insertion gap score를 -0.31로잡는다면 멍, 청, 이 세글자가 match되고두개의, 이 insertion gap을만들어서 2.38의점수를얻게된다. 그러므로 global alignment가이루어졌을때얻을수있는점수가 3.0이므로 79.3% 의유사도를얻을수있다. 더정확한 Local Alignment의측정을위해서자음, 모음을분리한형태로만든다. 예를들어 개새끼 를 갯샛낏 으로변형시켜입력할경우 Local Alignment가 0으로측정되게된다. 그러나 ㄱㅐㅅㅐㄲㅣ 와 ㄱㅐㅅㅅㅐㅅㄲㅣㅅ 의경우ㅅ이단순히 insertion gap을만들어낼뿐이므로충분한유사도가측정될수있다. 비속어의표준화작업에도이러한자모분리를사용하는방법이유리하다. 표 3. 외래어와특수문자를이용한변형예 기본단어 변형단어 기본단어 변형단어 씨팔 cval, ㅆl팔, ㅆ! 발, ㅆ1바, ㅆI발개 ㄱH 개새끼 dog새끼, dog새 니기미 ㄴ1ㄱ1, nigimi 니미 ㄴ1ㅁ1, ㄴ1미 니에미ㄴ1ㅇH미, ㄴ1에미, 니OH미 뒈진다 D질래 망할년 亡할년, 望할년 게이 gay, g@y 미친 ㅁ1친, ㅁI친, ㅁl친 현재추가적으로구현될부분으로유사한형태나발음의알파벳이나특수문자를검출하기위한
REP - VULGAR - 001, MARCH 2009 5 matching matrix를완성하는것이다. 이러한변형의경우현재의표준화규칙으로는올바른표준형추출이어렵다. 예를들어 개새끼 를 ㄱHㅅHㄲㅣ 로입력하는등의방법이있을수있고이러한변형규칙에대한자료수집및확립이필요하다. 특히이러한변형은시대의흐름에따라발전속도가빠르기때문에지속적인보수방법에대한연구도필요할것이다. 3 효과적인검색을위한계층적인자료구조 한글에는다양한비속어가있다. 특히인터넷의발달로인해정보의전파속도가기하급수적으로빨라지면서비속어의발달또한가속화되고있다. 이렇듯방대하고빠른속도로증가하는비속어를효과적으로저장하고신속하게검색하기위해서는계층적인 Tree 형태의자료구조형성이필요하다. 데이터량의증가에대해가장유연하게대처할수있는구조이기때문이다. 최상위계층은가장중요한영역이라고할수있다. 이곳에저장되는단어의숫자에따라서시스템의검색성능이크게좌우되기때문이다. 최상위계층에지나치게많은단어가들어갈경우대부분의단어를비교해야하기때문에비속어필터링작업량이크게증가하게된다. 이단계에들어가야할비속어의특징은다음과같이정리된다. 1. 비속어의표준형이라할수있어야한다. 인터넷에서는수많은비속어가사용되지만가장기본형이라할수있는표준형태들이존재하기마련이다. 최상위계층에올수있는단어에이러한제한을둠으로써효율적인자료구조의형성이가능하다. 2. 표준형이아니더라도 alignment에서크게벗어난단어를입력한다. 예를들어 새끼 의경우표준형으로변화시킬수있는 쉐키 같은형태로도쓰이지만 스끼, 시키 등표준화규칙에서벗어난형태의변형도사용된다. 지나치게표준화규칙을확대할경우오히려잘못된검색이수행될가능성이높으므로이러한형태의비속어는따로등록하여준다. 2단계에는표준형의파생형태를입력한다. 앞에서언급되었던발음, 형태등을이용한파생형태를입력한다. 표준화를통한검색도완전하다고할수없으므로자주사용되는변형형태를입력하여필터링의신뢰도를높이기위해서이다. 파생형태를입력할때중요한점은유사한형태의파생형이라하더라도표준형의검색에서 matching이이루어지는단어만을입력하는것이다. 상위단계에서 matching이이루어지지않는다면하위단계에서검색될수가없기때문이다. 추가적으로구현되어야할부분으로예외단어의입력이있다. 단어사전을통해정상적인단어를걸러낸다고하더라도사용자끼리자주사용하는은어나외래어가비속어검색에검출될가능성이있다. 특히게임의경우이러한경우가자주발생하는데예를들어게임의직업명으로자주사용되는 성기사 의경우 성기 부분이필터링에걸려서어려움을겪는경우가많은데 성기사 의경우국어사전에등록되어있지않은단어이다. 그러므로이경우사용자로부터피드백을받아서예외단어목록에등록한뒤에비속어필터링을통해검출되더라하더라도예외단어목록에포함될경우필터링에서제외하여야한다.
REP - VULGAR - 001, MARCH 2009 6 4 시스템구현상황 비속어필터링시스템은현재 C++ 를통하여구현되고있으며모듈화를통해서타시스템의채팅및 게시판등에합쳐질수있도록개발중이다. 이시스템은크게 3 개의모듈로구성된다. 첫째, Local Alignment 를측정하는모듈이다. 현재문자사이의빈칸및무의미한특수문자삽입등 에는효과적으로대처하고있으며비교적사용되는 string 의길이가짧은만큼 match, insertion gap, deletion gap 등의스코어에대해서실험을통해효율적인값의추출을진행하고있다. 둘째, 비속어의자소분리및표준화모듈이다. 한글자소를효과적으로분리하기위하여유니코드를이용해글자의수치를받아와서문자를분리시킨다. 한글완성형의경우문자에따라할당하는범위가틀려서기계적인자소분리가어려우나유니코드의경우초성 19개, 중성 21개, 종성 28개가모두구현되어있으므로간단한나누기와나머지연산을통해서자소의분리가가능하다. 자소분리함수의경우 2가지가존재하는데한가지는단순히자소분리만을수행하는함수와표준형으로변화시켜자소분리를수행하는함수이다. 표준형자소분리는표제어와 Local Alignment를측정하는데사용되고일반자소분리는변형형으로측정하는데사용된다. 셋째, 비속어의자료구조처리모듈이다. 비속어는현재표제어, 변형형 2 단계로저장되며두개를하 나의구조체로묶어서검색효율을증가시켰다. 유사 matching 처리를위한자료구조는현재작업중 이며이것또한계층적인구조를형성하여작업효율을높일계획이다. 5 결론및향후연구과제 본보고서에서는효과적인비속어필터링을위한검출기법및자료구조와그구현상황에대하여서술하였다. 자모분리를이용한비속어의표준화및 Local Alignment측정을통해서한글특유의변형에강한비속어검출시스템을구현하는데성공하였으며 Tree구조를이용한효율적인자료구조를형성하여신속한검색이가능하게하였다. 그러나해결해야하는문제점이몇가지존재한다. 1. 복합명사의문제이다. 비속어필터링을하기위해서는단어단위로문장을끊어주어야하는데비속어를다른단어와복합해서사용할경우단어를분리시켜주지않으면올바른필터링이이루어지기어렵다. 정상적인단어라면단어사전을통한검색을통해분리가가능하겠지만은어나고유명사등이포함될경우이것을분리할방법이필요하다. 2. 정상적인단어의예외처리문제이다. 단어사전에포함되지않은외래어나사용자간에자주사용되는은어의경우비속어로판정될경우예외처리를통해걸러지지않도록해야할필요성이있다. 이에대해서는검출되는해당비속어에대해예외사전을만들어관리해줄필요가있다. 3. 영어및특수문자를이용한변형에대한 alignment규칙의확립이필요하다. 현재는단순히한글의발음을통한변형에대해서만표준형변환이가능하나영어의발음을이용한변환이나특수
REP - VULGAR - 001, MARCH 2009 7 그림 2. 본시스템의 console 실행화면. 입력된변형형비속어에서성공적으로표준 형욕을검색해내는것을볼수있다. 측정된 Local Alignment 값을단어의자모가 분리된단어의길이로나눠서유사도를계산한다. 문자를이용한형태를통한변형형에도대처할수있도록표준화규칙을추가할필요가있으며 이를위해서통계를통한연구를수행해서주로사용되는변형규칙의수집이필요할것이다. 비속어필터링에대해서는이러한알고리즘적인검출방법외에도추가적인연구가필요하다. 먼저사용자의행동에대한분석이필요하다. 게임에서채팅시스템은어디까지나부가적인요소이므로지나치게많은연산이있어서는곤란하고지나친규제는정상적인단어를필터링하여이용에어려움을줄수가있다. 이를위해서사용자에따라규제정도를차등적용하는방법이있을수있다. 평소에비속어를많이사용하는사용자에대해서는규제등급을높여서전체적인부하를줄이고선량한사용의불편을줄이는방법이다. 그외에도비속어가한번필터링되었을경우일정시간동안규제등급을높이는방법이있을수있다. 일반적으로사용자는변형되지않은비속어를사용한후에필터링될경우변형된비속어를다시입력하는경향이있기때문이다. 비속어데이터베이스의자동적인 update방법에대한연구도있을것이다. 비속어는시대의흐름에따라계속생겨나고있으며유행에따라서자주사용되는비속어가있다. 이러한신종비속어를관리자가직접입력하는방법도있을수있으나사용자의채팅에서비속어가자주발생하는분쟁상태를발견하여정상적인한글단어사전과비속어사전양쪽모두에존재하지않지만자주사용되는단어가존재한다면비속어입력을위한후보군으로추출하는방법이있을수있겠다.
REP - VULGAR - 001, MARCH 2009 8 참고문헌 1. 한국게임산업진흥원, 게임언어건전화지침서연구, 2008. 2. Shekhar Dhupelia, esigning a vulgarity filtering system, in Game Programming Gems 5. 2005, Charles River Media. 3. Stefan Kurtz, Approximate string searching under weighted edit distance, 1996, Carlton University. 4. Gonzalo Navarro, A guided tour to approximate string matching, in Game Programming Gems 5. 2005, Charles River Media. 5. Gonzalo Navarro, A guided tour to approximate string matching, ACM Comput. Surv, vol. 33, no. 1, pp. 31 88, 2001. 6. journal = Know.-Based Syst volume = 20 number = 3 year = 2007 pages = 249-254 Lai C, title = An empirical study of three machine learning methods for spam filtering,,. 7. Chen H Wei C and Cheng T, Effective spam filtering: A single-class learning and ensemble approach, Decis. Support Syst, vol. 45, no. 3, pp. 491 503, 2008. 8. Feamster N Ramachandran A and Vempala S, Filtering spam with behavioral blacklisting, In Proceedings of the 14th ACM Conference on Computer and Communications Security (Alexandria, Virginia, pp. 342 351, 2001. 9. Cheng V and Li C H, Personalized spam filtering with semi-supervised classifier ensemble, In Proceedings of the 2006 IEEE/WIC/ACM international Conference on Web intelligence, pp. 195 201, 2001.