KR102236846B1 - 욕설 필터링 방법 및 장치 - Google Patents

욕설 필터링 방법 및 장치 Download PDF

Info

Publication number
KR102236846B1
KR102236846B1 KR1020190041511A KR20190041511A KR102236846B1 KR 102236846 B1 KR102236846 B1 KR 102236846B1 KR 1020190041511 A KR1020190041511 A KR 1020190041511A KR 20190041511 A KR20190041511 A KR 20190041511A KR 102236846 B1 KR102236846 B1 KR 102236846B1
Authority
KR
South Korea
Prior art keywords
texts
character
constituent
circular
profanity
Prior art date
Application number
KR1020190041511A
Other languages
English (en)
Other versions
KR20200119103A (ko
Inventor
이경만
이용철
조주연
Original Assignee
넷마블 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 넷마블 주식회사 filed Critical 넷마블 주식회사
Priority to KR1020190041511A priority Critical patent/KR102236846B1/ko
Publication of KR20200119103A publication Critical patent/KR20200119103A/ko
Application granted granted Critical
Publication of KR102236846B1 publication Critical patent/KR102236846B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

욕설 필터링 방법 및 장치가 개시된다. 욕설 필터링 방법은 입력 텍스트를 수신하는 단계, 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계, 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계, 제2 구성 텍스트들에 기초하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계, 원형 텍스트들이 결합된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계를 포함한다.

Description

욕설 필터링 방법 및 장치{METHOD AND APPARATUS FOR FILTERING SWEARWORD}
아래 실시예들은 욕설 필터링 기술에 관한 것이다.
기존의 욕설 필터링 방법 중에 사전에 정의된 욕설 사전을 바탕으로 입력 문자 내에 일치하는 단어가 있을 경우, 해당 단어를 필터링하는 방법이 있다. 하지만, 동일한 욕설 표현이라고 하더라도 문자 삽입, 유사 형태 문자 대치 등의 방법에 의해 욕설 표현의 필터링이 간단하게 회피가 가능하게 될 수 있으며, 또한 변형 가능한 모든 표현들을 욕설 사전에 정의하여 욕설 필터링을 수행하는 것은 불가능한 일이다.
예를 들어, 게임 서비스 분야에서 게임 채팅 메시지 내의 욕설은 상대방에게 불쾌감을 유발하고 게임 친화도를 낮추는 요인 중 하나이다. 게임 서비스 제공 회사에서는 명백하게 욕설로 받아들일 수 있는 단어에 대한 사전 정보를 구축하고, 사전 정보에 포함된 단어와 동일한 단어가 채팅 메시지에 포함되는 경우, 해당 단어를 필터링하는 방법을 사용한다. 이는 욕설이 명백하지 않은 단어까지 사전에 등록하고, 해당 단어를 필터링하면 일반적인 대화에 불편을 초래할 수 있기 때문이다. 하지만, 이러한 방법은 아주 손쉽게 회피할 수 있다는 문제점이 있으며, 대화 상황, 문맥, 대상, 의도적인 회피 등에 의해 욕설에 대한 정확한 판단이 어렵다. 예를 들어, 자소 띄어쓰기, 관련 없는 문자 삽입 또는 유사 형태의 문자로 한글 표현을 대치하는 방법 등에 의해 욕설의 다양한 변형 표현이 가능해 지는 문제가 있다.
따라서, 위와 같은 종래 기술의 문제점들을 해소하고 욕설 표현을 효과적으로 검출할 수 있는 기술적 수단이 요구되고 있다.
일 실시예에 따른 욕설 필터링 방법은, 입력 텍스트를 수신하는 단계; 상기 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계; 상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계; 상기 제2 구성 텍스트들에 기초하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및 상기 원형 텍스트들이 결합된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계를 포함할 수 있다.
상기 원형 텍스트들을 결정하는 단계는, 상기 제2 구성 텍스트들 중에서 띄어쓰기로 인하여 독립적으로 기재된 자소들을 조합하여 원형 텍스트를 결정하는 단계를 포함할 수 있다.
상기 원형 텍스트들을 결정하는 단계는, 상기 제2 구성 텍스트들 중에서 문자 중간에 삽입된 불용문자를 제거하여 원형 텍스트를 결정하는 단계를 포함할 수 있다.
상기 원형 텍스트들을 결정하는 단계는, 상기 제2 구성 텍스트들 중에서 특정한 자소에 대응하는 유사 형태 문자를 검출하는 단계; 및 상기 검출된 유사 형태 문자를 상기 검출된 유사 형태 문자에 대응하는 한글 자소로 대체하여 상기 원형 텍스트를 결정하는 단계를 포함할 수 있다.
상기 원형 텍스트들을 결정하는 단계는, 상기 제2 구성 텍스트들에 접두사 및 접미사 중 적어도 하나를 분리하는 단계; 상기 접두사 및 상기 접미사 중 적어도 하나가 분리된 상기 제2 구성 텍스트들에서 불용문자를 제거하고, 음절을 조합하는 단계; 및 상기 불용문자가 제거되고, 상기 음절이 조합된 제2 구성 텍스트들에 상기 분리된 적어도 하나의 접두사 및 접미사를 결합하여 상기 원형 텍스트들을 결정하는 단계를 포함할 수 있다.
상기 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계는, 미리 정의된 욕설 사전 정보에 포함된 욕설 관련 표현이 상기 결합 텍스트에 존재하는지 여부를 결정하는 단계를 포함할 수 있다.
상기 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계는, 상기 욕설 사전 정보에 기초하여 상기 결합 텍스트에 대해 부분 문자열 비교를 수행하는 것에 의해 상기 결합 텍스트에서 욕설 관련 표현을 검출하는 단계를 포함할 수 있다.
일 실시예에 따른 욕설 필터링 방법은, 상기 결합 텍스트에 상기 욕설 관련 표현이 존재하는 경우, 상기 결합 텍스트에서 상기 욕설 관련 표현을 다른 표현을 대체한 결과 텍스트를 출력하는 단계를 더 포함할 수 있다.
상기 원형 텍스트들을 결정하는 단계는, 미리 정의된 트라이 정보를 기초로 상기 원형 텍스트들을 결정하는 단계를 포함할 수 있다.
상기 원형 텍스트들을 결정하는 단계는, 상기 제2 구성 텍스트들에서 조합형 문자 및 단일형 문자를 식별하는 단계; 및 상기 식별 결과에 기초하여 상기 원형 텍스트들을 결정하는 단계를 포함할 수 있다.
상기 조합형 문자는, 초성 문자와 중성 문자가 결합된 제1 문자, 및 초성 문자, 중성 문자 및 종성 문자가 결합된 제2 문자 중 적어도 하나를 포함하고, 상기 단일형 문자는, 초성 문자만이 존재하는 제3 문자, 및 중성 문자만이 존재하는 제4 문자 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른 욕설 필터링 방법은, 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계; 상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계; 상기 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및 미리 정의된 욕설 사전 정보에 기초하여 상기 원형 텍스트들이 결합된 결합 텍스트에서 욕설 관련 표현을 필터링하는 단계를 포함할 수 있다.
일 실시예에 따른 욕설 필터링 장치는, 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들을 저장하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 입력 텍스트를 수신하는 단계; 상기 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계; 상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계; 상기 제2 구성 텍스트들에 기초하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및 상기 원형 텍스트들이 결합된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계를 수행할 수 있다.
상기 프로세서는, 상기 원형 텍스트들을 결정하는 단계에서, 상기 제2 구성 텍스트들에 접두사 및 접미사 중 적어도 하나를 분리하는 단계; 상기 접두사 및 상기 접미사 중 적어도 하나가 분리된 상기 제2 구성 텍스트들에서 불용문자를 제거하고, 음절을 조합하는 단계; 및 상기 불용문자가 제거되고, 상기 음절이 조합된 제2 구성 텍스트들에 상기 분리된 적어도 하나의 접두사 및 접미사를 결합하여 상기 원형 텍스트들을 결정하는 단계를 수행할 수 있다.
상기 프로세서는, 상기 결합 텍스트에 상기 욕설 관련 표현이 존재하는 경우, 상기 결합 텍스트에서 상기 욕설 관련 표현을 다른 표현을 대체한 결과 텍스트를 출력하는 단계를 더 수행할 수 있다.
다른 실시예에 따른 욕설 필터링 장치는, 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들을 저장하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계; 상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계; 상기 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및 미리 정의된 욕설 사전 정보에 기초하여 상기 원형 텍스트들이 결합된 결합 텍스트에서 욕설 관련 표현을 필터링하는 단계를 수행할 수 있다.
도 1은 일 실시예에 따른 욕설 필터링 시스템의 개요(overview)를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 욕설 필터링 장치의 구성을 도시하는 도면이다.
도 3은 일 실시예에 따른 욕설 필터링 과정을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 욕설 필터링 방법의 동작을 설명하기 위한 흐름도이다.
도 5a 및 도 5b는 일 실시예에 따른 욕설 필터링 장치가 이용하는 원형 표현 복원 규칙들로서 욕설 관련 표현의 원형 표현 복원을 위한 규칙의 일례들을 설명하기 위한 도면들이다.
도 6은 일 실시예에 따른 트리 정보를 저장하는 일례를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 트리 정보를 이용한 검색의 일례를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 원형 텍스트를 복원하는 과정을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 원형 텍스트를 복원하는 일례를 설명하기 위한 도면이다.
도 10은 다른 실시예에 따른 욕설 필터링 장치의 구성을 도시하는 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 욕설 필터링 시스템의 개요(overview)를 설명하기 위한 도면이다.
도 1을 참조하면, 욕설 필터링 시스템은 서버(110) 및 사용자 단말(120)을 포함한다. 서버(110)는 데이터베이스(115)에 연결될 수 있다. 데이터베이스(115)는 서버(110)의 외부에 별도로 존재하거나 또는 서버(110)의 내부에 존재할 수 있다. 사용자 단말(120)은, 예를 들어 셀룰러 폰, 스마트 폰, 퍼스널 컴퓨터, 랩탑, 노트북, 넷북, 태블렛(tablet), 휴대 정보 단말기(personal digital assistant; PDA) 등일 수 있고, 어플리케이션이나 프로그램을 통해 획득되는 입력 텍스트 데이터를 서버(120)에 전송할 수 있다.
일 실시예에서, 서버(110) 및 사용자 단말(120) 중 적어도 하나가 욕설 필터링 장치로 동작할 수 있다. 예를 들어, 서버(110) 또는 사용자 단말(120)만이 욕설 필터링을 수행하거나, 또는 서버(110) 및 사용자 단말(120) 모두가 욕설 필터링을 상호 보완적으로 수행할 수도 있다.
욕설 필터링 장치는 사용자 단말(120)에 의해 입력된 입력 텍스트에서 욕설 관련 표현을 검출하고, 검출된 욕설 관련 표현을 필터링한 결과 텍스트를 제공할 수 있다. 욕설 필터링 장치는, 예를 들어 게임 채팅 환경에서 입력된 입력 텍스트에서 한글 표기의 변형 욕설 표현을 검출할 수 있다. 욕설 필터링 장치는 변형 욕설 표현을 원형으로 변환하여 욕설 표현을 필터링할 수 있다. 본 명세서에서는 "욕설"이라고 지칭하였으나, 이는 설명의 편의를 위한 것이고, 실시예의 범위가 "욕설"의 사전적 의미로 한정되어 해석되어서는 안된다. 예를 들어, 본 발명의 실시예는 사용자에게 제공되는 것이 제한되는 모든 단어를 필터링하는 것으로 확장될 수 있다.
실시예에 따라, 욕설 필터링 장치는 외부 서버와 별개로 독립적으로 존재하거나 또는 외부 서버에 포함되어 동작할 수도 있다. 여기서, 외부 서버는, 예를 들어 사용자 단말(120)에 게임 서비스를 제공하는 게임 서버일 수 있다. 일 실시예에서, 사용자 단말(120)로부터 사용자에 의해 입력된 입력 텍스트가 욕설 필터링 장치에 전달되고, 욕설 필터링 장치는 사용자 단말(120)로부터 수신한 입력 텍스트에서 욕설 관련 표현을 검출하고, 검출된 욕설 관련 표현을 필터링한 결과 텍스트를 게임 서버에 제공할 수 있다. 게임 서버는 욕설 필터링 장치에서 제공받은 결과 텍스트를 다른 사용자 단말에 전송할 수 있다.
욕설 필터링 장치는 한글 표기 변형의 공통적인 특성을 규칙으로 지정한 정보를 저장하여 가질 수 있다. 욕설 필터링 장치는 이렇게 미리 정의된 트라이(trie) 정보(트리 정보 또는 트라이 자료 구조 정보)에 기초하여 욕설 필터링을 수행할 수 있다. 트라이 정보는 욕설 표현을 검색하기 위한 구조를 나타내며, 트라이 정보의 경우, 실제로 한글 모음이나 자음이 아니더라도 한글로서 검색이 가능하도록 구현된다. 이러한 트라이 정보는 데이터베이스(115)에 저장될 수 있다.
욕설 필터링 장치는 하나 이상의 문자를 이용하여 한글의 자소로 변형하는 한글 표기 변형 표현을 검출할 수 있다. 욕설 필터링 장치는 조합형 문자와 한글 문자를 구분 적용하여 여러 폰트의 외형적인 차이를 고려하여 욕설 필터링을 수행할 수 있다. 여기서, 문자(character)는 일정한 체계의 부호로서, 예를 들어 한글, 알파벳, 숫자, 기호, 히라가나, 가타카나, 한자 등을 포함할 수 있다. 문자가 한글인 경우, 각 문자는 음절 단위로 구분될 수 있고, 하나의 문자는 하나 이상의 자소로 구성될 수 있다. 자소는 문자를 구성하는 요소로서, 예를 들어 한글에서는 자음이나 모음을 나타낸다.
욕설 필터링 장치는 다양한 욕설 표현에 대한 정보를 저장하고 있는 욕설 사전 정보를 이용하여 다양한 변형 표현의 욕설을 효과적으로 검출할 수 있다. 욕설 사전 정보는 데이터베이스(115)에 저장되어 있을 수 있다. 한글과 욕설을 등록하면, 이에 대해 자동으로 원형 변환 규칙이 등록되어 동일 변환 문자의 감지가 가능해 진다. 이러한 원형 변환 규칙은 자동으로 갱신될 수 있다.
욕설 필터링 장치는 욕설을 변형하는 방법들에 대한 공통적인 특징을 이용하여 변형된 욕설 표현을 원형 표현으로 변환하고, 변환된 원형 표현에 대해 욕설 사전을 이용하여 욕설 필터링을 수행함으로써 입력 텍스트에서 욕설 관련 표현을 효과적으로 필터링할 수 있다. 실시예에 따라, 욕설 필터링 장치는 입력 텍스트에 포함된 욕설 관련 표현을 원형 표현으로 대체하여 원형으로 복원된 텍스트를 다른 욕설 필터링 시스템에 전달하기만 하고, 대신 다른 욕설 필터링 시스템이 해당 복원된 텍스트를 기초로 욕설 필터링을 수행하는 것도 가능할 수 있다.
또한, 욕설 필터링 장치는 여러 문자를 하나의 한글 자소로 표현하는 방법에 대해 검출이 가능하며, 조합형 문자/단일형 문자를 고려하여 욕설을 필터링할 수 있다.
게임 서비스의 경우, 사용자가 입력한 게임 채팅 메시지에서 욕설을 검출하고, 검출된 욕설을 필터링하여 다른 사용자에게 제공하는 것은 매우 중요한 일이다. 게임 중에 전달되는 상대방의 욕설은 사용자의 만족도나 성취감을 낮추고, 게임 서비스로부터의 이탈을 부추기는 요인이 되기 때문이다. 본 명세서에서 설명하는 욕설 필터링 기술을 통해, 욕설 사용자가 자소간 띄어쓰기, 단어 중간에 문자 삽입, 유사 형태의 문자를 이용한 문자 변형 등의 방법을 이용하여 다른 사용자로 하여금 욕설과 같이 보이도록 하면서 욕설 필터링을 회피하는 것이 효과적으로 방지될 수 있다.
이하에서는, 도면들을 참고하여 욕설 필터링 장치 및 방법에 대해 보다 자세히 설명하도록 한다.
도 2는 일 실시예에 따른 욕설 필터링 장치의 구성을 도시하는 도면이다.
욕설 필터링 장치(200)는 사용자가 입력한 입력 텍스트를 수신하고, 입력 텍스트에서 욕설과 관련된 변형 표현을 원형 표현으로 변환할 수 있다. 실시예에 따라, 욕설 필터링 장치(200)는 변환된 원형 표현에서 욕설 사전 정보에 포함된 욕설 표현이 존재하는지 여부를 검출하고, 욕설 표현이 존재하는 경우 해당 욕설 표현을 다른 표현으로 대체하여 출력할 수 있다.
도 2를 참조하면, 욕설 필터링 장치(200)는 출력부(210), 처리부(220), 저장부(230), 입력 수신부(240) 및 통신부(250)를 포함할 수 있다. 입력 수신부(240)는 사용자에 의해 입력된 입력 텍스트를 수신할 수 있다. 예를 들어, 입력 수신부(240)는 입력 문자열을 구성하는 각 문자 또는 자소에 대응하는 사용자 입력을 시계열적으로 수신할 수 있다. 실시예에 따라, 입력 수신부(240)는 사용자로부터 입력된 입력 텍스트를 직접 수신하거나 또는 통신부(250)를 통해 사용자 단말로부터 입력 텍스트에 관한 정보를 수신할 수도 있다.
저장부(230)는 욕설 필터링 장치(200)를 동작시키기 위한 인스트럭션들을 포함하는 프로그램을 저장할 수 있다. 저장부(230)에 저장된 프로그램은 처리부(220)에 의해 실행될 수 있다. 또한, 저장부(230)는 욕설 사전 정보, 트라이 정보 등을 저장할 수도 있다. 여기서, 욕설 사전 정보는 적어도 하나의 욕설에 대한 정보를 포함할 수 있고, 새로운 욕설이 추가되거나 기존에 등록된 욕설이 제거되는 등 갱신이 가능하다.
처리부(220)는 입력 텍스트에 대해 욕설 필터링을 수행하기 위한 처리를 수행할 수 있다. 예를 들어, 처리부(220)는 입력 텍스트로부터 욕설을 필터링하여 출력 텍스트를 생성하도록 입력 수신부(240), 저장부(230), 출력부(210) 및 통신부(250) 중 적어도 하나를 제어할 수 있다.
일 실시예에서, 처리부(220)는 입력 텍스트를 단어(word) 단위의 제1 구성 텍스트들로 분할하고, 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할할 수 있다. 처리부(220)는 제2 구성 텍스트들에 기초하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정할 수 있다. 처리부(220)는 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정할 수 있다.
제1 실시예에서, 제2 구성 텍스트들에서 자소간 띄어쓰기로 인해 자소들이 독립적으로 기재된 경우, 처리부(220)는 독립적으로 기재된 자소들을 조합하여 원형 표현을 복원할 수 있다. 예를 들어, 처리부(220)는 "ㅅ ㅐ ㄱ ㄱ ;", "새 ㄲ ㅣ" 등을 "새끼"의 원형 표현으로 복원할 수 있다.
제2 실시예에서, 처리부(220)는 제2 구성 텍스트들에서 문자 중간에 삽입된 불용문자(예, 숫자 '1')를 제거하여 원형 표현을 복원할 수 있다. 예를 들어, 처리부(220)는 "새1끼"에서 "1"의 불용문자를 제거하여 "새끼"의 원형 표현을 복원할 수 있다.
제3 실시예에서, 처리부(220)는 제2 구성 텍스트들에서 유사 형태 문자를 검출하여 변환한 후 자소를 조합하여 원형 표현을 복원할 수 있다. 예를 들어, 처리부(220)는 "ㅅH끼"에서 유사 형태 문자 "H"를 검출하고, 해당 "H"를 이에 대응하는 한글 문자인 "ㅐ"로 대체한 후 자소를 조합하여 원형 표현을 복원할 수 있다. 다른 예로, 처리부(220)는 "새 ㄲ1"에서 유사 형태 문자 "1"을 검출하고, 해당 "1"을 이에 대응하는 한글 문자인 "ㅣ"로 대체한 후 자소를 조합하여 원형 표현을 복원할 수 있다.
위 실시예들에서, 처리부(220)는 원형 텍스트를 복원하기 위해 미리 정의된 트라이(trie) 정보를 이용할 수 있다.
처리부(220)는 변형 욕설 표현이 원래의 의도된 욕설 표현으로 복원된 원형 텍스트들을 결합하여 결합 텍스트를 생성하고, 생성된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출할 수 있다. 예를 들어, 처리부(220)는 결합 텍스트에 기 정의된 욕설 사전 정보에 포함된 욕설 표현들을 비교하여 동일한 욕설 표현이 존재하는지 여부를 검사할 수 있다.
결합 텍스트에 욕설 사전 정보에 정의된 욕설 표현이 존재하는 경우, 처리부(220)는 해당 욕설 표현을 다른 표현으로 변형하여 결과 텍스트를 생성할 수 있다. 처리부(220)는 변환된 원형 표현에서 욕설 사전 정보에 포함된 욕설 표현이 존재하는지 여부를 검출하고, 욕설 표현이 존재하는 경우 해당 욕설 표현을 다른 표현으로 대체하여 출력부(210)를 통해 출력할 수 있다. 예를 들어, 처리부(220)는 해당 욕설 표현을 특정 개수의 별표 표시(*)로 변형하거나 쉬프트 넘버(shift-number)로 변형할 수 있다. 또는, 처리부(220)는 해당 욕설 표현을 미리 정의된 특정한 단어로 대체할 수도 있다.
출력부(210)는 디스플레이 장치를 포함하며, 욕설이 필터링된 텍스트를 디스플레이 장치를 통해 출력할 수 있다.
통신부(250)는 다른 장치와 통신할 수 있다. 통신부(250)는, 예를 들어 무선 통신 및 유선 통신 중 적어도 하나를 이용하여 다른 장치와 통신할 수 있다. 통신부(250)는 사용자 단말로부터 입력 텍스트를 수신하거나 또는 욕설 변형 표현이 원래의 욕설 표현으로 복원된 텍스트나 필터링된 결과 텍스트를 다른 장치로 전송할 수 있다.
도 3은 일 실시예에 따른 욕설 필터링 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 단계(310)에서 욕설 필터링 장치는 입력 텍스트를 수신한다. 단계(320)에서, 욕설 필터링 장치는 입력 텍스트에 대응하는 원형 텍스트를 복원할 수 있다. 욕설 필터링 장치는 입력 텍스트를 분석하여 욕설과 관련된 변형 표현을 원래 형태로 복원할 수 있다. 욕설 필터링 장치는 기 정의된 원형 표현 복원 규칙을 이용하여 입력 텍스트에서 욕설 관련 변형 표현을 원형 표현으로 복원할 수 있다.
단계(330)에서, 욕설 필터링 장치는 욕설 표현과 관련된 사전 데이터베이스를 검색할 수 있다. 사전 데이터베이스는 욕설 사전 정보를 포함할 수 있다. 욕설 필터링 장치는 복원된 원형 텍스트에 사전 데이터베이스에 포함된 욕설 관련 표현이 존재하는지 여부를 검사할 수 있다.
복원된 원형 텍스트에 욕설 표현이 존재하는 것으로 검사된 경우, 단계(340)에서 욕설 필터링 장치는 해당 욕설 표현을 다른 욕설이 아닌 표현으로 변형하여 입력 텍스트에서 욕설 표현을 필터링할 수 있다. 단계(350)에서, 욕설 필터링 장치는 욕설 표현이 필터링된 결과 텍스트를 출력할 수 있다.
도 4는 일 실시예에 따른 욕설 필터링 방법의 동작을 설명하기 위한 흐름도이다. 일 실시예에 따른 욕설 필터링 방법은 본 명세서에서 설명되는 욕설 필터링 장치에 의해 수행될 수 있다.
도 4를 참조하면, 단계(410)에서 욕설 필터링 장치는 입력 텍스트를 수신하고, 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할할 수 있다. 예를 들어, 입력 텍스트가 문장이나 구(phrase)인 경우, 욕설 필터링 장치는 문장이나 구를 단어 단위의 제1 구성 텍스트들로 분할할 수 있다.
단계(420)에서, 욕설 필터링 장치는 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할할 수 있다. 욕설 필터링 장치는 제1 구성 텍스트들마다 자소 단위로 분할할 수 있다.
단계(430)에서, 욕설 필터링 장치는 제2 구성 텍스트들에 기초하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정할 수 있다. 욕설 필터링 장치는 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정할 수 있다. 예를 들어, 욕설 필터링 장치는 제2 구성 텍스트들을 앞에서부터 순차적으로 띄어쓰기, 불용문자(stopword) 삽입, 유사 형태 문자 삽입 등이 있는지 여부를 검사하고, 검사 결과로서, 띄어쓰기, 불용문자 삽입 또는 유사 형태 문자 삽입이 존재하는 경우에는 각 경우에 대응되는 원형 표현 복원 규칙을 적용하여 원형 텍스트들을 결정할 수 있다.
예를 들어, 욕설 필터링 장치는 제2 구성 텍스트들 중에서 띄어쓰기로 인하여 독립적으로 기재된 자소들을 조합하여 원형 텍스트를 결정하고, 제2 구성 텍스트들 중에서 문자 중간에 삽입된 불용문자를 제거하여 원형 텍스트를 결정할 수 있다.
다른 예로, 욕설 필터링 장치는 제2 구성 텍스트들 중에서 특정한 자소에 대응하는 유사 형태 문자를 검출하고, 검출된 유사 형태 문자를 검출된 유사 형태 문자에 대응하는 한글 자소로 대체하여 원형 텍스트를 결정할 수 있다.
또 다른 예로, 욕설 필터링 장치는 제2 구성 텍스트들에서 조합형 문자 및 단일형 문자를 식별하고, 식별 결과에 기초하여 원형 텍스트들을 결정할 수 있다. 이 때, 욕설 필터링 장치는 미리 정의된 트라이(trie) 정보를 기초로 상기 원형 텍스트들을 결정할 수 있다. 조합형 문자는, 예를 들어 초성 문자와 중성 문자가 결합된 제1 문자, 및 초성 문자, 중성 문자 및 종성 문자가 결합된 제2 문자 중 적어도 하나를 포함할 수 있다. 단일형 문자는, 예를 들어 초성 문자만이 존재하는 제3 문자, 및 중성 문자만이 존재하는 제4 문자 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 욕설 필터링 장치는 제2 구성 텍스트들에 접두사 및 접미사 중 적어도 하나를 분리하고, 접두사 및 상기 접미사 중 적어도 하나가 분리된 제2 구성 텍스트들에서 불용문자를 제거하고, 음절을 조합할 수 있다. 욕설 필터링 장치는 위 불용문자가 제거되고, 음절이 조합된 제2 구성 텍스트들에 분리된 적어도 하나의 접두사 및 접미사를 다시 결합하여 원형 텍스트들을 결정할 수도 있다.
단계(440)에서, 욕설 필터링 장치는 원형 텍스트들이 결합된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출할 수 있다. 욕설 필터링 장치는 미리 정의된 욕설 사전 정보에 포함된 욕설 관련 표현이 해당 결합 텍스트에 존재하는지 여부를 결정할 수 있다. 예를 들어, 욕설 필터링 장치는 욕설 사전 정보에 기초하여 결합 텍스트에 대해 부분 문자열 비교를 수행하는 것에 의해 결합 텍스트에서 욕설 관련 표현을 검출할 수 있다.
단계(450)에서, 욕설 필터링 장치는 결합 텍스트에서 욕설 관련 표현을 필터링하고, 필터링된 결과 텍스트를 출력할 수 있다. 욕설 필터링 장치는 결합 텍스트에 욕설 관련 표현이 존재하는 경우, 결합 텍스트에서 해당 욕설 관련 표현을 다른 표현을 대체한 결과 텍스트를 출력할 수 있다. 욕설 필터링 장치는 욕설 관련 표현을 다른 기 정의된 비욕설 표현으로 대체하는 것에 의해 필터링을 수행하고, 필터링된 결과 텍스트를 출력할 수 있다.
도 5a 및 도 5b는 일 실시예에 따른 욕설 필터링 장치가 이용하는 원형 표현 복원 규칙들로서 욕설 관련 표현의 원형 표현 복원을 위한 규칙의 일례들을 설명하기 위한 도면들이다.
다음은 원형 표현 복원 규칙들의 일례들을 나타낸다.
도 5a를 참조하면, (A)는 모든 단어들이 자소 단위로 분해되어 다시 결합되는 원형 표현 복원 규칙을 나타낸다. (B)는 한 개 이상의 문자 조합을 통하여 하나의 한글 자소가 표현되는 원형 표현 복원 규칙을 나타낸다. (C)는 조합형 문자의 한글 자소와 단일형 문자의 한글 자소가 구분되어 사용되는 원형 표현 복원 규칙을 나타낸다. (D)는 단일형 문자의 한글 자소 조합과 관련하여, 초성 문자와 중성 문자까지의 조합만 가능한 원형 표현 복원 규칙을 나타낸다.
도 5b를 참조하면, (E)는 한글 문자 이외의 문자는 위치에 따라 자음이나 모음으로 사용 가능하다는 원형 표현 복원 규칙을 나타낸다. (F)는 자음은 모음과 가장 가까운 문자들을 통해 조합되고, 모음은 모음 시작 위치에서 가장 가까운 문자들을 이용해 조합되는 원형 표현 복원 규칙을 나타낸다. (G)는 조합형 문자나 조합이 가능한 문자 사이에 있는 비조합형 문자는 제거하는 원형 표현 복원 규칙을 나타낸다. (H)는 완성형 문자의 외곽(예, 시작 음절 전, 종료 음절 후)에 있는 문자들은 분리한 후, 분리된 문자의 문자 원형을 변환한 이후에 다시 결합하는 원형 표현 복원 규칙을 나타낸다.
욕설 필터링 장치는 위와 같은 원현 표현 복원 규칙들을 이용하여 입력 텍스트에서 욕설 관련 변형 표현을 효과적으로 검출하고, 해당 욕설 관련 변형 표현을 원래의 표현으로 용이하게 복원할 수 있다.
도 6은 일 실시예에 따른 트리 정보를 저장하는 일례를 설명하기 위한 도면이다.
도 6을 참조하면, 변형 단어의 원형 검색은 트리 정보(트라이 정보)를 통해 수행될 수 있다. 이러한 트리 정보는 사전에 결정되어 저장될 수 있다. 트리 정보를 통해, 입력된 욕설 관련 단어 자체가 다르더라도 등록된 변형 단어에 동일 규칙이 사용되었다면, 해당 욕설의 검출이 가능해 진다.
먼저, 단어가 입력된다. 여기서, 변형 단어, 음절 분리나 띄어쓰기가 적용된 변형 단어, 변형 단어에 대응하는 원형 단어에 대한 정보가 하나의 세트를 구성할 수 있다. 이후에, 단어가 자소 단위로 분할된다. 자소 단위로 분할된 후 각각의 자소가 조합형 문자인지 단일형 문자인지 여부가 확인된다. 조합형 문자는 처음 입력된 단어에서 초성 문자와 중성 문자가 결합된 문자 또는 초성 문자, 중성 문자 및 종성 문자가 모두 결합된 문자를 나타낸다. 단일형 문자는 초성 문자만이 존재하거나 중성 문자만이 존재하는 문자를 나타낸다. 이러한 조합형 문자와 단일형 문자는 입력된 텍스트의 형태로 판단된다. 예를 들어, 처음에 "새ㄱㄱㅣ"의 단어가 입력되었다고 가정하면, "새"를 구성하는 자소인 "ㅅ"와 "ㅐ"는 조합형 문자가 되고, "ㄱㄱㅣ"를 구성하는 자소인 "ㄱ"과 "ㄱ"와 "ㅣ"는 단일형 문자가 된다.
이후에, 각 자소 단위의 분석 결과인 원형 표현 복원 규칙이 트리 정보(600)에 저장 또는 등록된다. 트리 정보(600)에서, 에지(610)는 단일형 문자/조합형 문자 하나에 대응하고, 조합 정보 확인을 위한 검색 대상을 가리킨다. 노드(620)는 에지(610)가 가리키는 문자들의 조합 결과를 나타낸다.
도 7은 일 실시예에 따른 트리 정보를 이용한 검색의 일례를 설명하기 위한 도면이다.
도 7을 참조하면, 트리 정보는 자소들 간의 조합 규칙을 저장하고 있다. 욕설 필터링 장치는 이러한 트리 정보를 통해 욕설 관련 변형 표현의 원형 표현을 검색할 수 있다.
예를 들어, 만약, 처음에 자소가 "ㄱ"이면, 트리 정보에 기초하여 원형 표현은 "ㄱ"으로 결정될 수 있다. "ㄱ"이후에 다시 "ㄱ"이 오면, 트리 정보에 기초하여 "ㄲ"로 결정될 수 있다. 한편, "ㄱ"이후에 "ㅅ"이 오면, 트리 정보에 기초하여 "ㄳ"로 결정될 수 있다. 처음에 자소가 "ㄴ"이면, 트리 정보에 기초하여 "ㄴ"으로 결정된다.
처음에 자소가 "1"이면, 트리 정보에 기초하여 복원된 원형 표현으로 "ㅣ"로 결정될 수 있다. "1" 이후에 "-"가 오면, 원형 표현은 "ㅏ"로 결정될 수 있다. 그 이후에 다시 "1"이 오면, 트리 정보에 기초하여 원형 표현은 "ㅏ"로 결정될 수 있다.
위와 같이, 욕설 필터링 장치는 트리 정보에 포함된 자소들 간의 조합 규칙에 따라 욕설 관련 변형 표현의 원형 표현을 용이하게 식별할 수 있다.
도 8은 일 실시예에 따른 원형 텍스트를 복원하는 과정을 설명하기 위한 도면이다. 도 8에 도시된 일련의 과정은 욕설 필터링 장치에 의해 수행될 수 있다.
도 8을 참조하면, 단계(810)에서 문장이 입력된다. 단계(820)에서, 욕설 필터링 장치는 문장을 단어 단위로 분할할 수 있다. 단계(830)에서, 욕설 필터링 장치는 단어 단위를 다시 자소 단위로 분할할 수 있다. 이후에, 욕설 필터링 장치는 각각의 자소가 조합형 문자 또는 단일형 문자인지 여부에 대한 확인 과정을 수행할 수 있다.
단계(840)에서, 욕설 필터링 장치는 트리 정보에 나타난 트리 구조를 기초로 자소 단위에 기반하여 원형 표현의 복원 과정을 수행할 수 있다. 이러한 트리 검색 과정의 경우, 점진적으로 반복하여 수행될 수 있다. 일 실시예에서, 접두사 분리, 음절 조합, 불용문자 제거, 원형 단어 복원 및 접미사 복원의 일련의 과정이 점진적으로 반복하여 수행될 수 있다. 여기서, 접두사 및 접미사는 의미를 가지지 않는 단어이다.
단계(850)에서, 원형 표현이 복원된 문자에 접두사 및 접미사가 결합하고, 단계(860)에서 원형 표현이 복원된 단어들이 결합하여 결합 텍스트가 생성된다. 욕설 사전 정보에 포함된 기 정의된 욕설 표현들을 기초로 결합 텍스트에 욕설 표현이 있는지 여부가 검사된다. 검사 결과, 결합 텍스트에 욕설 표현이 존재하는 것으로 결정되면, 해당 욕설 표현은 욕설이 아닌 다른 표현으로 대체되어 최종적인 결과 텍스트가 출력된다.
도 9는 일 실시예에 따른 원형 텍스트를 복원하는 일례를 설명하기 위한 도면이다.
도 9를 참조하면, "ㅅㅂㅁㅣ친ㅅㅐ1ㄱㄱㅣ야"의 입력 텍스트에 대해 욕설 관련 변형 표현을 복원하여 원형 표현인 "ㅅㅂ미친 새끼야"를 결정하는 일례가 도시되어 있다.
일 실시예에서, 욕설 필터링 장치는 입력 텍스트를 단어(word) 단위의 제1 구성 텍스트들로 분할할 수 있다. 예를 들어, 욕설 필터링 장치는 입력 텍스트를 "ㅅㅂㅁㅣ친"과 "ㅅㅐ1ㄱㄱㅣ야"와 같은 단어 단위의 제1 구성 텍스트들로 분할할 수 있다. 이후에, 욕설 필터링 장치는 제1 구성 텍스트들 각각을 자소 단위로 제2 구성 텍스트들로 분할할 수 있다. 예를 들어, 욕설 필터링 장치는 "ㅅㅂㅁㅣ친"을 "ㅅㅂㅁㅣㅊㅣㄴ"으로 분할하고, "ㅅㅐ1ㄱㄱㅣ야"는 "ㅅㅐ1ㄱㄱㅣㅇㅑ"로 분할할 수 있다.
욕설 필터링 장치는 각각의 제2 구성 텍스트들에 대해 원형 표현 복원 규칙들을 적용하여 제1 구성 텍스트들에 대응하는 원형 표현들을 복원할 수 있다. 이러한 복원 과정은, 또한 기 정의된 트리 정보를 기초로 점진적인 비교 및 검색 과정을 포함할 수 있다. 결과적으로는, "ㅅㅂ미친 새끼야"로 원형 표현이 복원된 원형 텍스트가 결정될 수 있다.
도 10은 다른 실시예에 따른 욕설 필터링 장치의 구성을 도시하는 도면이다.
도 10을 참조하면, 욕설 필터링 장치(1000)는 프로세서(1010), 메모리(1020) 및 통신 인터페이스(1030)를 포함할 수 있다. 실시예에 따라, 욕설 필터링 장치(1000)는 사용자 입력 인터페이스(1040), 디스플레이(1050) 및 데이터베이스(1060) 중 하나 이상을 더 포함할 수도 있다. 욕설 필터링 장치(1000)는 본 명세서에서 설명된 욕설 필터링 장치에 대응한다.
메모리(1020)는 프로세서(1010)에 연결되고, 프로세서(1010)에 의해 실행가능한 인스트럭션들, 프로세서(1010)가 연산할 데이터 또는 프로세서(1010)에 의해 처리된 데이터를 저장할 수 있다. 메모리(1020)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.
통신 인터페이스(1030)는 외부 장치와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(1030)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다. 예를 들어, 통신 인터페이스(1030)는 사용자 단말로부터 입력 텍스트를 수신하거나 또는 욕설 변형 표현이 원래의 욕설 표현으로 복원된 텍스트나 필터링된 결과 텍스트를 다른 장치로 전송할 수 있다.
사용자 입력 인터페이스(1040)는 사용자에 의해 입력되는 사용자 입력을 수신한다. 예를 들어, 사용자 입력 인터페이스(1040)는 입력 문자열을 구성하는 각 문자 또는 자소에 대응하는 사용자 입력을 시계열적으로 수신할 수 있다. 디스플레이(1050)는 욕설이 필터링된 텍스트를 디스플레이 장치를 통해 출력할 수 있다.
데이터베이스(1060)는 욕설 필터링 장치(1000)가 동작하는데 필요한 정보를 저장할 수 있다. 예를 들어, 데이터베이스(1060)는 욕설 필터링 장치(1000)를 동작시키기 위한 인스트럭션들을 포함하는 프로그램을 저장할 수 있다. 또한, 데이터베이스(1060)는 욕설 사전 정보, 트라이 정보 등을 저장할 수도 있다.
프로세서(1010)는 욕설 필터링 장치(1000) 내에서 실행하기 위한 기능 및 인스트럭션들을 실행하고, 욕설 필터링 장치(1000)의 전체적인 동작을 제어한다. 프로세서(1010)는 도 1 내지 도 9에서 설명된 욕설 필터링 장치의 동작과 관련된 하나 이상의 동작을 수행할 수 있다.
일 실시예에서, 프로세서(1010)는 입력 텍스트를 수신하고, 수신한 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하고, 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할할 수 있다. 프로세서(1010)는 제2 구성 텍스트들에 기초하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정할 수 있다. 프로세서(1010)는 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정할 수 있다.
예를 들어, 프로세서(1010)는 제2 구성 텍스트들 중에서 띄어쓰기로 인하여 독립적으로 기재된 자소들을 조합하여 원형 텍스트를 결정하거나 또는, 제2 구성 텍스트들 중에서 문자 중간에 삽입된 불용문자를 제거하여 원형 텍스트를 결정할 수 있다. 다른 예로, 프로세서(1010)는 제2 구성 텍스트들 중에서 특정한 자소에 대응하는 유사 형태 문자를 검출하고, 검출된 유사 형태 문자를 해당 검출된 유사 형태 문자에 대응하는 한글 자소로 대체하여 상기 원형 텍스트를 결정할 수도 있다.
일 실시예에서, 프로세서(1010)는 제2 구성 텍스트들에 접두사 및 접미사 중 적어도 하나를 분리하고, 접두사 및 상기 접미사 중 적어도 하나가 분리된 제2 구성 텍스트들에서 불용문자를 제거하고, 음절을 조합할 수 있다. 프로세서(1010)는 불용문자가 제거되고, 음절이 조합된 제2 구성 텍스트들에 해당 분리된 적어도 하나의 접두사 및 접미사를 결합하여 원형 텍스트들을 결정할 수도 있다.
이후에, 프로세서(1010)는 원형 텍스트들을 결합하여 결합 텍스트를 생성하고, 생성된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출할 수 있다. 예를 들어, 프로세서(1010)는 미리 정의된 욕설 사전 정보에 기초하여 원형 텍스트들이 결합된 결합 텍스트에서 욕설 관련 표현을 필터링할 수 있다. 결합 텍스트에 욕설 관련 표현이 존재하는 것으로 결정된 경우, 프로세서(1010)는 결합 텍스트에서 욕설 관련 표현을 다른 표현을 대체한 결과 텍스트를 출력할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
110, 200, 1000: 욕설 필터링 장치
120: 사용자 단말 115, 1060: 데이터베이스
210: 출력부 220: 처리부
230: 저장부 240: 입력 수신부
250: 통신부 1010: 프로세서
1020: 메모리 1030: 통신 인터페이스
1040: 사용자 입력 인터페이스 1050: 디스플레이

Claims (24)

  1. 욕설 필터링 장치에서 수행되는 욕설 필터링 방법에 있어서,
    입력 텍스트를 수신하는 단계;
    상기 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계;
    상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계;
    상기 제2 구성 텍스트들에 기초하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및
    상기 원형 텍스트들이 결합된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계를 포함하고,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 제2 구성 텍스트들 중에서 외형적으로 특정한 자소에 대응하는 한글 자소가 아닌 유사 형태 문자를, 트라이 정보(trie)에 기초하여 상기 유사 형태 문자에 대응하는 한글 자소로 대체하는 단계;
    상기 제2 구성 텍스트들에서 접두사 및 접미사 중 적어도 하나를 분리하는 단계;
    상기 접두사 및 상기 접미사 중 적어도 하나가 분리된 상기 제2 구성 텍스트들에서 문자 중간에 삽입된 불용문자를 제거하고, 음절을 조합하는 단계;
    상기 제2 구성 텍스트들로부터 조합형 문자 및 단일형 문자를 구별하는 단계; 및
    상기 조합형 문자 및 상기 단일형 문자로 구별된 상기 제2 구성 텍스트들에 기초하여 상기 원형 텍스트들을 결정하는 단계를 포함하고,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 트라이 정보에 나타난 트리 구조를 기초로 상기 제2 구성 텍스트들에 대해 접두사 분리, 음절 조합, 불용문자 제거, 원형 단어 복원 및 접미사 복원의 과정을 반복하여 수행하는 단계를 포함하고,
    상기 트라이 정보는 단일형 문자 또는 조합형 문자 하나에 대응하는 에지와 상기 에지가 가리키는 문자들의 조합 결과를 나타내는 노드를 포함하는,
    욕설 필터링 방법.
  2. 제1항에 있어서,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 제2 구성 텍스트들 중에서 띄어쓰기로 인하여 독립적으로 기재된 자소들을 조합하여 원형 텍스트를 결정하는 단계
    를 포함하는,
    욕설 필터링 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 불용문자가 제거된 후에, 상기 음절이 조합된 제2 구성 텍스트들에 상기 분리된 적어도 하나의 접두사 및 접미사를 결합하여 상기 원형 텍스트들을 결정하는 단계
    를 포함하는,
    욕설 필터링 방법.
  6. 제1항에 있어서,
    상기 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계는,
    미리 정의된 욕설 사전 정보에 포함된 욕설 관련 표현이 상기 결합 텍스트에 존재하는지 여부를 결정하는 단계
    를 포함하는,
    욕설 필터링 방법.
  7. 제6항에 있어서,
    상기 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계는,
    상기 욕설 사전 정보에 기초하여 상기 결합 텍스트에 대해 부분 문자열 비교를 수행하는 것에 의해 상기 결합 텍스트에서 욕설 관련 표현을 검출하는 단계
    를 포함하는,
    욕설 필터링 방법.
  8. 제1항에 있어서,
    상기 결합 텍스트에 상기 욕설 관련 표현이 존재하는 경우, 상기 결합 텍스트에서 상기 욕설 관련 표현을 다른 표현을 대체한 결과 텍스트를 출력하는 단계
    를 더 포함하는,
    욕설 필터링 방법.
  9. 삭제
  10. 제1항에 있어서,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 제2 구성 텍스트들에서 조합형 문자 및 단일형 문자를 식별하는 단계; 및
    상기 식별 결과에 기초하여 상기 원형 텍스트들을 결정하는 단계
    를 포함하는,
    욕설 필터링 방법.
  11. 제10항에 있어서,
    상기 조합형 문자는,
    초성 문자와 중성 문자가 결합된 제1 문자, 및 초성 문자, 중성 문자 및 종성 문자가 결합된 제2 문자 중 적어도 하나를 포함하고,
    상기 단일형 문자는,
    초성 문자만이 존재하는 제3 문자, 및 중성 문자만이 존재하는 제4 문자 중 적어도 하나를 포함하는,
    욕설 필터링 방법.
  12. 욕설 필터링 장치에서 수행되는 욕설 필터링 방법에 있어서,
    입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계;
    상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계;
    상기 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및
    미리 정의된 욕설 사전 정보에 기초하여 상기 원형 텍스트들이 결합된 결합 텍스트에서 욕설 관련 표현을 필터링하는 단계를 포함하고,
    상기 원형 텍스트들을 결정하는 단계는
    상기 제2 구성 텍스트들 중에서 외형적으로 특정한 자소에 대응하는 한글 자소가 아닌 유사 형태 문자를, 트라이 정보(trie)에 기초하여 상기 유사 형태 문자에 대응하는 한글 자소로 대체하는 단계;
    상기 제2 구성 텍스트들에서 접두사 및 접미사 중 적어도 하나를 분리하는 단계;
    상기 접두사 및 상기 접미사 중 적어도 하나가 분리된 상기 제2 구성 텍스트들에서 문자 중간에 삽입된 불용문자를 제거하고, 음절을 조합하는 단계;
    상기 제2 구성 텍스트들로부터 조합형 문자 및 단일형 문자를 구별하는 단계; 및
    상기 조합형 문자 및 상기 단일형 문자로 구별된 상기 제2 구성 텍스트들에 기초하여 상기 원형 텍스트들을 결정하는 단계를 포함하고,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 트라이 정보에 나타난 트리 구조를 기초로 상기 제2 구성 텍스트들에 대해 접두사 분리, 음절 조합, 불용문자 제거, 원형 단어 복원 및 접미사 복원의 과정을 반복하여 수행하는 단계를 포함하고,
    상기 트라이 정보는 단일형 문자 또는 조합형 문자 하나에 대응하는 에지와 상기 에지가 가리키는 문자들의 조합 결과를 나타내는 노드를 포함하는,
    욕설 필터링 방법.
  13. 제12항에 있어서,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 제2 구성 텍스트들 중에서 띄어쓰기로 인하여 독립적으로 기재된 자소들을 조합하여 원형 텍스트를 결정하는 단계
    를 포함하는,
    욕설 필터링 방법.
  14. 삭제
  15. 삭제
  16. 제12항에 있어서,
    상기 원형 텍스트들을 결정하는 단계는,
    상기 불용문자가 제거되고, 상기 음절이 조합된 제2 구성 텍스트들에 상기 분리된 적어도 하나의 접두사 및 접미사를 결합하여 상기 원형 텍스트들을 결정하는 단계
    를 포함하는,
    욕설 필터링 방법.
  17. 하드웨어와 결합되어 제1항, 제2항, 제5항 내지 제8항, 제10항 내지 제13항 및 제16항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체.
  18. 메모리 및 프로세서를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고,
    상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
    입력 텍스트를 수신하는 단계;
    상기 입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계;
    상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계;
    상기 제2 구성 텍스트들에 기초하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및
    상기 원형 텍스트들이 결합된 결합 텍스트에 미리 정의된 욕설 관련 표현이 존재하는지 여부를 검출하는 단계를 수행하고,
    상기 프로세서는 상기 원형 텍스트들을 결정하는 단계에서, 상기 제2 구성 텍스트들 중에서 외형적으로 특정한 자소에 대응하는 한글 자소가 아닌 유사 형태 문자를, 트라이 정보(trie)에 기초하여 상기 유사 형태 문자에 대응하는 한글 자소로 대체하는 단계;
    상기 제2 구성 텍스트들에서 접두사 및 접미사 중 적어도 하나를 분리하는 단계; 및
    상기 접두사 및 상기 접미사 중 적어도 하나가 분리된 상기 제2 구성 텍스트들에서 문자 중간에 삽입된 불용문자를 제거하고, 음절을 조합하는 단계;
    상기 제2 구성 텍스트들로부터 조합형 문자 및 단일형 문자를 구별하는 단계; 및
    상기 조합형 문자 및 상기 단일형 문자로 구별된 상기 제2 구성 텍스트들에 기초하여 상기 원형 텍스트들을 결정하는 단계를 수행하고,
    상기 프로세서는,
    상기 트라이 정보에 나타난 트리 구조를 기초로 상기 제2 구성 텍스트들에 대해 접두사 분리, 음절 조합, 불용문자 제거, 원형 단어 복원 및 접미사 복원의 과정을 반복하여 수행하는 단계를 수행하고,
    상기 트라이 정보는 단일형 문자 또는 조합형 문자 하나에 대응하는 에지와 상기 에지가 가리키는 문자들의 조합 결과를 나타내는 노드를 포함하는,
    를 수행하는,
    욕설 필터링 장치.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 원형 텍스트들을 결정하는 단계에서,
    상기 불용문자가 제거되고, 상기 음절이 조합된 제2 구성 텍스트들에 상기 분리된 적어도 하나의 접두사 및 접미사를 결합하여 상기 원형 텍스트들을 결정하는 단계
    를 수행하는,
    욕설 필터링 장치.
  20. 제18항에 있어서,
    상기 프로세서는,
    상기 결합 텍스트에 상기 욕설 관련 표현이 존재하는 경우, 상기 결합 텍스트에서 상기 욕설 관련 표현을 다른 표현을 대체한 결과 텍스트를 출력하는 단계
    를 더 수행하는,
    욕설 필터링 장치.
  21. 메모리 및 프로세서를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고,
    상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
    입력 텍스트를 단어 단위의 제1 구성 텍스트들로 분할하는 단계;
    상기 제1 구성 텍스트들 각각을 자소 단위의 제2 구성 텍스트들로 분할하는 단계;
    상기 제2 구성 텍스트들에 기 정의된 원형 표현 복원 규칙을 적용하여 상기 제1 구성 텍스트들 각각에 대응하는 원형 텍스트들을 결정하는 단계; 및
    미리 정의된 욕설 사전 정보에 기초하여 상기 원형 텍스트들이 결합된 결합 텍스트에서 욕설 관련 표현을 필터링하는 단계를 수행하고,
    상기 프로세서는,
    상기 원형 텍스트들을 결정하는 단계에서, 상기 제2 구성 텍스트들 중에서 외형적으로 특정한 자소에 대응하는 한글 자소가 아닌 유사 형태 문자를, 트라이 정보(trie)에 기초하여 상기 유사 형태 문자에 대응하는 한글 자소로 대체하는 단계;
    상기 제2 구성 텍스트들에서 접두사 및 접미사 중 적어도 하나를 분리하는 단계;
    상기 접두사 및 상기 접미사 중 적어도 하나가 분리된 상기 제2 구성 텍스트들에서 문자 중간에 삽입된 불용문자를 제거하고, 음절을 조합하는 단계;
    상기 제2 구성 텍스트들로부터 조합형 문자 및 단일형 문자를 구별하는 단계; 및
    상기 조합형 문자 및 상기 단일형 문자로 구별된 상기 제2 구성 텍스트들에 기초하여 상기 원형 텍스트들을 결정하는 단계를 수행하고,
    상기 프로세서는, 상기 트라이 정보에 나타난 트리 구조를 기초로 상기 제2 구성 텍스트들에 대해 접두사 분리, 음절 조합, 불용문자 제거, 원형 단어 복원 및 접미사 복원의 과정을 반복하여 수행하는 단계를 수행하고,
    상기 트라이 정보는 단일형 문자 또는 조합형 문자 하나에 대응하는 에지와 상기 에지가 가리키는 문자들의 조합 결과를 나타내는 노드를 포함하는,
    욕설 필터링 장치.
  22. 삭제
  23. 삭제
  24. 제21항에 있어서,
    상기 프로세서는,
    상기 원형 텍스트들을 결정하는 단계에서,
    상기 제2 구성 텍스트들 중에서 띄어쓰기로 인하여 독립적으로 기재된 자소들을 조합하여 원형 텍스트를 결정하는 단계
    를 수행하는,
    욕설 필터링 장치.
KR1020190041511A 2019-04-09 2019-04-09 욕설 필터링 방법 및 장치 KR102236846B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190041511A KR102236846B1 (ko) 2019-04-09 2019-04-09 욕설 필터링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190041511A KR102236846B1 (ko) 2019-04-09 2019-04-09 욕설 필터링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200119103A KR20200119103A (ko) 2020-10-19
KR102236846B1 true KR102236846B1 (ko) 2021-04-06

Family

ID=73042891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190041511A KR102236846B1 (ko) 2019-04-09 2019-04-09 욕설 필터링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102236846B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102410582B1 (ko) * 2021-10-29 2022-06-22 주식회사 튜닙 유해어에 대한 학습 데이터를 증강하는 장치, 방법 및 컴퓨터 프로그램

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680649B2 (en) * 2002-06-17 2010-03-16 International Business Machines Corporation System, method, program product, and networking use for recognizing words and their parts of speech in one or more natural languages
KR101163458B1 (ko) * 2010-10-28 2012-07-18 부산대학교 산학협력단 한글에 대한 유사도 계산 방법
KR102618483B1 (ko) * 2016-09-30 2023-12-27 주식회사 넥슨코리아 텍스트 필터링 장치 및 방법
KR102034346B1 (ko) * 2017-06-29 2019-10-18 연세대학교 산학협력단 학습 기반의 비속어 탐지 장치 및 방법
KR102483643B1 (ko) * 2017-08-14 2023-01-02 삼성전자주식회사 모델을 학습하는 방법 및 장치 및 상기 뉴럴 네트워크를 이용한 인식 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김철수 외, 이중 배열 트라이구조를 이용한 한국어 전자 사전의 구축, 정보과학회논문지 23(1), 1996.

Also Published As

Publication number Publication date
KR20200119103A (ko) 2020-10-19

Similar Documents

Publication Publication Date Title
US8762132B2 (en) Textual entailment recognition apparatus, textual entailment recognition method, and computer-readable recording medium
TWI437449B (zh) 多重模式輸入方法及輸入方法編輯器系統
JP7108675B2 (ja) 意味マッチング方法、装置、電子機器、記憶媒体及びコンピュータプログラム
JP5268923B2 (ja) 文字位置ベースのパスワードの回復
EP3113174A1 (en) Method for building a speech feature library, method, apparatus, and device for speech synthesis
JP6312467B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20180246856A1 (en) Analysis method and analysis device
US10120843B2 (en) Generation of parsable data for deep parsing
JP2007334534A (ja) 文字列入力装置、文字列入力方法、および、プログラム
US8880391B2 (en) Natural language processing apparatus, natural language processing method, natural language processing program, and computer-readable recording medium storing natural language processing program
KR102618483B1 (ko) 텍스트 필터링 장치 및 방법
KR102236846B1 (ko) 욕설 필터링 방법 및 장치
Roush et al. Most language models can be poets too: An AI writing assistant and constrained text generation studio
US10789410B1 (en) Identification of source languages for terms
CN106471743B (zh) 普通ascii数据流的编码
WO2021144901A1 (ja) 音声認識装置、方法及びプログラム
JP5795302B2 (ja) 形態素解析装置、方法、及びプログラム
EP3255558A1 (en) Syntax analyzing device, learning device, machine translation device and recording medium
WO2014030258A1 (ja) 形態素解析装置、テキスト分析方法、及びそのプログラム
WO2018179729A1 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
Lehal A two stage word segmentation system for handling space insertion problem in Urdu script
JP6640788B2 (ja) 言語変換プログラム及び言語変換装置
US11875141B2 (en) System and method for training a neural machine translation model
JP4765107B2 (ja) 文字列入力装置、および、プログラム
JP7243818B2 (ja) 読み曖昧性解消装置、読み曖昧性解消方法、及び読み曖昧性解消プログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant