KR102618483B1 - 텍스트 필터링 장치 및 방법 - Google Patents

텍스트 필터링 장치 및 방법 Download PDF

Info

Publication number
KR102618483B1
KR102618483B1 KR1020160126188A KR20160126188A KR102618483B1 KR 102618483 B1 KR102618483 B1 KR 102618483B1 KR 1020160126188 A KR1020160126188 A KR 1020160126188A KR 20160126188 A KR20160126188 A KR 20160126188A KR 102618483 B1 KR102618483 B1 KR 102618483B1
Authority
KR
South Korea
Prior art keywords
string
profanity
character
similarity
grapheme
Prior art date
Application number
KR1020160126188A
Other languages
English (en)
Other versions
KR20180036074A (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 KR1020160126188A priority Critical patent/KR102618483B1/ko
Publication of KR20180036074A publication Critical patent/KR20180036074A/ko
Application granted granted Critical
Publication of KR102618483B1 publication Critical patent/KR102618483B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (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)
  • Document Processing Apparatus (AREA)

Abstract

텍스트 필터링 장치 및 방법이 제공된다. 일 실시예에 따른 텍스트 필터링 장치는 입력 문자열을 획득하고, 상기 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 상기 검출된 변환 대상 문자를 자소로 변환하며, 상기 자소를 조합하여 상기 입력 문자열로부터 조합 문자열을 생성하고, 상기 조합 문자열로부터 비속어를 검색할 수 있다.

Description

텍스트 필터링 장치 및 방법{DEVICE AND METHOD TO FILTER TEXT}
이하, 텍스트를 필터링하는 장치 및 방법이 제공된다.
온라인 게임(on-line game)은 각종 네트워크로 하는 게임으로서, 인터넷의 발달로 인해 급속도로 성장해 왔다. 하드 디스크 드라이브에 프로그램을 설치해 두고 인터넷 서버에 접속해 즐길 수 있는 흔히 머드(MUD:Multiple User Dialogue 혹은 Multiple User Dungeon)게임, 머그(MUG:Multiple User Graphic)게임, 브라우저만으로 게임을 할 수 있는 웹 기반의 게임, 휴대 전화나 휴대용 게임기를 이용하는 모바일 게임 등이 이에 속한다. 컴퓨터, 핸드폰, 휴대용 게임기 등 다양한 기기에서 각자 다양한 장르의 온라인 게임을 지원하나, 일반적으로는 인터넷을 통해 컴퓨터로 하는 유선 온라인 게임을 지칭한다.
온라인 게임 내에서 사용자들 간의 채팅에서 나타나는 비속어들을 효율적으로 정확하게 필터링하는 기술이 요구된다.
일 실시예에 따른 텍스트 필터링 장치는 입력 문자열을 한글 자소로 변형 및 분리하였다가 재조합한 조합 문자열로부터 비속어를 검색할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 조합 문자열로부터 음절 단위로 비속어를 검색할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 입력 문자열을 전처리할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 조합 문자열을 후처리한 후 비속어를 검색할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 자소 유사도에 기초하여 입력 문자열에 포함된 비속어를 검색할 수 있다.
일 실싱예에 따른 텍스트 필터링 장치에 의해 수행되는 방법은, 입력 문자열을 획득하는 단계; 상기 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 상기 검출된 변환 대상 문자를 자소로 변환하는 단계; 상기 자소를 조합하여 상기 입력 문자열로부터 조합 문자열을 생성하는 단계; 및 상기 조합 문자열로부터 비속어를 검색하는 단계를 포함할 수 있다.
상기 자소로 변환하는 단계는, 상기 검출된 변환 대상 문자를 한글 자소 또는 한글 문자로 변환하는 단계를 포함할 수 있다.
상기 검출된 변환 대상 문자를 자소로 변환하는 단계는, 상기 입력 문자열로부터 한글이 검출되는 경우에 응답하여, 상기 문자열 중 상기 검출된 한글을 한글 자소로 분리하는 단계; 및 상기 입력 문자열 중 나머지 문자를 한글 자소로 변환하는 단계를 포함할 수 있다.
상기 입력 문자열을 획득하는 단계는, 상기 입력 문자열로부터 공백, 전처리 대상 특수 문자, 불용어(stop word), 중복 문자, 및 정상 단어 중 적어도 하나를 제거함으로써 입력 문자열을 전처리하는 단계를 포함하고, 상기 검출된 변환 대상 문자를 자소로 변환하는 단계는, 상기 전처리된 입력 문자열로부터 상기 변환 대상 문자를 검색하는 단계를 포함하며, 상기 조합 문자열을 생성하는 단계는, 상기 전처리된 입력 문자열에 기초하여 상기 조합 문자열을 생성하는 단계를 포함할 수 있다.
상기 검출된 변환 대상 문자를 자소로 변환하는 단계는, 상기 검출된 변환 대상 문자가 외국 문자로 식별되는 경우에 응답하여, 상기 변환 대상 문자를 상기 외국 문자의 한국어 발음에 대응하는 한글 자소 및 상기 외국 문자와 유사한 형태의 한글 자소 중 하나로 변환하는 단계를 포함할 수 있다.
상기 검출된 변환 대상 문자를 자소로 변환하는 단계는, 상기 검출된 변환 대상 문자가 기 등록된 특수 문자로 식별되는 경우에 응답하여, 상기 변환 대상 문자를 상기 특수 문자에 대응하는 한글 자소로 변환하는 단계를 포함할 수 있다.
상기 변환 대상 문자를 상기 특수 문자에 대응하는 한글 자소로 변환하는 단계는, 상기 변환 대상 문자를, 상기 특수 문자와 유사한 형태를 가지는 한글 자소로 변환하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열로부터 공백, 전처리 대상 특수 문자, 불용어(stop word), 중복 문자, 및 정상 단어 중 적어도 하나를 제거함으로써 후처리된 조합 문자열을 후처리하는 단계; 및 상기 후처리된 조합 문자열로부터 상기 비속어를 검색하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열로부터 비속어를 검출하는 단계를 포함하고, 상기 검색된 비속어를 상기 입력 문자열로부터 필터링하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열의 각각의 한글을 한글 자소로 분리하는 단계; 상기 분리된 한글 자소의 각각과 필터링 단어(filtering word)에 대응하는 한글 자소 간의 유사도를 산출하는 단계; 및 상기 유사도에 기초하여 필터링할 문자를 결정하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열에서 필터링 단어에 대응하는 대상 문자열 및 상기 필터링 단어 간의 유사도를 산출하는 단계; 및 상기 산출된 유사도가 임계값을 초과하는 경우에 응답하여, 상기 대상 문자열을 비속어로 결정하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열의 각 음절 및 상기 필터링 단어의 각 음절 간의 음절 유사도를 산출하는 단계; 및 상기 음절 유사도에 기초하여, 상기 조합 문자열로부터 상기 필터링 단어를 검색하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열의 적어도 일부 자소 및 상기 필터링 단어에서 그에 대응하는 자소 간의 자소 유사도를 산출하는 단계; 상기 자소 유사도에 기초하여 상기 조합 문자열 및 상기 필터링 단어 간의 유사도를 산출하는 단계; 및 상기 유사도에 기초하여 상기 조합 문자열로부터 상기 필터링 단어를 검색하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열로부터 필터링 단어의 음절 갯수에 기초하여 대상 문자열을 선택하는 단계; 및 상기 대상 문자열과 상기 필터링 단어 간의 유사도를 산출하는 단계를 포함할 수 있다.
상기 비속어를 검색하는 단계는, 상기 조합 문자열로부터 복수의 대상 문자열을 순차적으로 선택하는 단계; 상기 복수의 대상 문자열의 각각과 상기 필터링 단어 간의 유사도를 산출하는 단계; 및 상기 복수의 대상 문자열 중 상기 유사도가 임계값을 초과하는 대상 문자열을 비속어로 결정하는 단계를 포함할 수 있다.
텍스트 필터링 방법은 상기 입력 문자열을 입력한 사용자 단말과 연관된 다른 사용자 단말로부터 상기 입력 문자열에 포함된 비속어 정보를 수신하는 단계; 및 상기 수신된 비속어 정보에 대응하는 비속어가 상기 입력 문자열에서 필터링되지 않은 경우에 응답하여 필터링 목록을 업데이트하는 단계를 더 포함할 수 있다.
텍스트 필터링 방법은 상기 입력 문자열을 입력한 사용자 단말과 연관된 다른 사용자 단말로부터 상기 입력 문자열에 포함된 비속어 정보를 수신하는 단계; 및 상기 수신된 비속어 정보에 대응하는 비속어의 각 문자에 대응하는 자소 및 상기 입력 문자열에서 상기 비속어에 대응하는 대상 문자열의 각 자소 간의 자소 유사도를 업데이트하는 단계를 더 포함할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는, 입력 문자열을 획득하고, 상기 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 상기 검출된 변환 대상 문자를 자소로 변환하며, 상기 자소를 조합하여 상기 입력 문자열로부터 조합 문자열을 생성하고, 상기 조합 문자열로부터 비속어를 검색하는 처리부를 포함할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 조합 문자열로부터 비속어를 검색함으로써, 별도의 필터링 단어 추가 없이도 사용자에 의해 유사한 형태 또는 유사한 발음으로 변형되어 표기된 비속어도 검색할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 조합 문자열로부터 음절 단위로 비속어를 검색함으로써, 자소간 유사도의 계산량을 절감하고, 검색 속도를 개선할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 입력 문자열을 전처리함으로써 필터링의 정확도를 개선할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 조합 문자열을 후처리함으로써, 필터링의 정확도를 보다 개선할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 자소 유사도에 기초하여 비속어를 검색하면서, 유사도 비교의 기준이 되는 임계값의 설정을 통해 비속어 검색율을 조절할 수 있다.
도 1은 일 실시예에 따른 텍스트 필터링 시스템의 구성을 도시한다.
도 2는 일 실시예에 따른 텍스트 필터링 단말의 구성을 도시한 블럭도이다.
도 3은 일 실시예에 따른 텍스트 필터링 서버의 구성을 도시한 블럭도이다.
도 4는 일 실시예에 따른 텍스트 필터링 방법을 도시한 흐름도이다.
도 5는 일 실시예에 따른 텍스트 전처리 과정을 도시한 도면이다.
도 6은 일 실시예에 따른 텍스트 변환 과정을 도시한 도면이다.
도 7은 일 실시예에 따른 텍스트 변환 맵을 도시한 도면이다.
도 8은 일 실시예에 따른 텍스트 후처리 과정을 도시한 도면이다.
도 9는 일 실시예에 따른 필터링 목록을 이용한 필터링의 예시를 도시한 도면이다.
도 10은 일 실시예에 따른 텍스트 필터링을 위한 유사도 산출의 예시를 도시한 도면이다.
도 11은 일 실시예에 따른 음절 유사도 설정의 예시를 도시한 도면이다.
도 12 및 도 13은 일 실시예에 따른 조합 문자열 및 필터링 단어 간의 유사도 산출 과정을 설명하는 도면이다.
도 14는 일 실시예에 따라 필터링이 완료된 출력 문자열의 예시를 설명하는 도면이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 텍스트 필터링 시스템의 구성을 도시한다.
텍스트 필터링 시스템(100)은 사용자 단말(110) 및 서버(120)를 포함한다. 일 실시예에 따르면, 사용자 단말(110) 및 서버(120) 중 적어도 하나가 텍스트 필터링 장치로서 동작할 수 있다. 예를 들어, 사용자 단말(110)만이 텍스트 필터링을 수행하거나, 서버(120)가 텍스트 필터링을 수행할 수 있고, 더 나아가 사용자 단말(110) 및 서버(120)가 모두 텍스트 필터링을 상호보완적으로 수행할 수도 있다.
사용자 단말(110)은 텍스트를 필터링하는 장치로서, 예를 들어, 데스크톱 PC, 노트북 PC, 태블릿 PC, 및 모바일 폰 등일 수 있다. 일 실시예에 따르면, 사용자 단말(110)은 사용자 단말(110)의 사용자로부터 입력된 문자열로부터 비속어를 필터링할 수 있다. 예를 들어, 사용자 단말(110)은 사용자 조작에 응답하여 어플리케이션을 실행할 수 있고, 어플리케이션을 통해 획득되는 문자열로부터 비속어를 필터링할 수 있다. 다른 예를 들어, 사용자 단말(110)은 어플리케이션을 통해 획득되는 문자열을 서버(120)로 송신할 수 있고, 서버(120)에 의해 비속어가 필터링된 문자열을 수신할 수 있다.
다른 일 실시예에 따르면, 사용자 단말(110)은 다른 사용자 단말의 사용자로부터 입력된 문자열을 수신하여 필터링할 수 있다. 예를 들어, 사용자 단말(110)은 다른 사용자 단말로부터 어플리케이션을 통해 수신된 문자열의 비속어를 자체적으로 필터링할 수 있다. 다른 예를 들어, 서버(120)가 다른 사용자 단말로부터 어플리케이션을 통해 문자열을 수신하여 필터링하고, 사용자 단말(110)은 필터링된 문자열을 서버(120)로부터 수신할 수 있다.
본 명세서에서 어플리케이션은 사용자 단말(110)에 설치되는 프로그램으로서, 예를 들어, 사용자 단말(110)로부터 문자열을 획득하는 동작, 다른 사용자로 단말 또는 서버(120)부터 문자열을 수신하는 동작, 문자열로부터 비속어를 필터링하는 동작, 비속어가 필터링된 문자열을 생성하는 동작, 비속어가 필터링된 문자열을 수신하는 동작, 및 비속어가 필터링된 문자열을 디스플레이로 출력하는 동작 중 적어도 하나를 수행하는 명령어를 포함할 수 있다. 일 실시예에 따르면, 어플리케이션은 사용자에게 게임 서비스를 제공하는 게임 어플리케이션일 수 있으나, 이로 한정하는 것은 아니며, 채팅 기능을 제공하는 모든 어플리케이션일 수 있다.
본 명세서에서 문자열(string)은 일련의 문자의 집합을 나타낼 수 있다. 문자(character)는 일정한 체계의 부호로서, 예를 들어, 한글, 알파벳, 한자, 숫자 및 기호 등을 포함할 수 있다. 예를 들어, 문자가 한글인 경우, 문자열에서 각 문자는 음절 단위로 구분될 수 있고, 하나의 문자는 하나 이상의 자소로 구성될 수 있다. 자소는 문자를 구성하는 요소로서, 예를 들어, 한글에서는 자음 또는 모음을 나타낼 수 있다.
비속어는 사용자에 대한 제공이 제한되는 것으로 등록된 단어(word)를 나타낼 수 있다. 예를 들어, 비속어는 욕설과 관련된 단어 및 인격을 비하하는 단어 등으로서, 필터링되어야 하는 단어를 나타낼 수 있다. 단어는 단일 문자이거나, 문자열로 구성될 수 있다.
사용자 단말(110) 및 다른 사용자 단말에 설치되는 어플리케이션은 서로 동일한 어플리케이션일 수 있으나, 이로 한정하는 것은 아니다. 예를 들어, 사용자 단말(110)에 설치되는 어플리케이션 및 다른 사용자 단말에 설치되는 어플리케이션은 서버(120)를 통해 상호 간 통신을 수립하면서, 채팅 기능이 연동되지만 서로 구분되는 어플리케이션일 수 있다. 사용자 단말(110)에는 게임 어플리케이션이 설치될 수 있고, 다른 사용자 단말에는 상술한 게임 어플리케이션과 연동되는 채팅 기능을 수행하는 게임 보조 어플리케이션이 설치될 수 있다.
사용자 단말(110)의 구체적인 구성은 하기 도 2에서 상세히 설명한다.
서버(120)는 사용자 단말(110)로부터 수신한 텍스트를 필터링할 수 있다. 또한, 서버(120)는 사용자에 의해 사용자 단말(110)에서 실행되는 어플리케이션에 대한 서비스를 제공할 수 있다. 서버(120)는 예를 들어, 사용자 단말(110)에 게임 서비스를 제공할 수 있다. 일 실시예에 따르면, 서버(120)는 사용자 단말(110)로부터 문자열을 수신할 수 있고, 수신된 문자열로부터 비속어를 필터링할 수 있으며, 비속어가 필터링된 문자열을 사용자 단말(110)로 송신할 수 있다.
서버(120)의 구체적인 구성은 하기 도 2에서 상세히 설명한다.
도 2는 일 실시예에 따른 텍스트 필터링 단말의 구성을 도시한 블럭도이다.
도 2은 텍스트 필터링 단말(110)(이하, 사용자 단말)의 세부적인 구성을 예로 들어 설명한다. 사용자 단말(110)은 통신부(210), 디스플레이(220), 입력수신부(230), 처리부(240), 및 저장부(250)를 포함할 수 있다.
통신부(210)는 서버와 통신할 수 있다. 예를 들어, 통신부(210)는 무선 통신 및 유선 통신 중 적어도 하나를 이용하여 서버와 통신할 수 있다. 일 실시예에 따르면 통신부(210)는 게임 서비스의 제공을 위해 필요한 게임과 연관된 정보를 서버로 송신하거나 서버로부터 수신할 수 있다. 예를 들어, 통신부(210)는 서버로 사용자로부터 획득된 입력 문자열을 송신하거나, 입력 문자열로부터 비속어가 필터링된 출력 문자열을 송신할 수 있다. 다른 예를 들어, 통신부(210)는 서버로부터 비속어가 필터링된 문자열을 수신할 수도 있다.
본 명세서에서 입력 문자열은 텍스트 필터링 장치가 획득하는 문자열로서, 예를 들어, 비속어를 필터링하는 동작이 적용되지 않은 문자열을 나타낼 수 있다. 출력 문자열은 텍스트 필터링 장치가 출력하는 문자열로서, 예를 들어, 비속어를 필터링하는 동작이 적용된 문자열을 나타낼 수 있다.
디스플레이(220)는 비속어가 필터링된 텍스트를 사용자에게 표시할 수 있다. 또한, 디스플레이(220)는 다른 사용자 단말로부터 수신된 비속어가 필터링된 텍스트를 표시할 수 있다. 디스플레이(220)는 처리부(240)의 제어에 응답하여, 사용자에게 어플리케이션과 연관된 정보에 기초한 화면을 표시할 수 있다.
입력수신부(230)는 사용자로부터 사용자 조작을 수신할 수 있다. 일 실시예에 따르면, 입력수신부(230)는 입력 문자열에 대응하는 일련의 사용자 조작을 수신할 수 있다. 예를 들어, 입력수신부(230)는 입력 문자열을 구성하는 각 문자 또는 자소에 대응하는 사용자 조작을 시계열적으로 수신할 수 있다.
처리부(240)는 텍스트 필터링을 수행하기 위한 처리를 수행할 수 있다. 예를 들어, 처리부(240)는 획득된 입력 문자열로부터 비속어를 필터링하여 출력 문자열을 생성하도록 통신부(210), 디스플레이(220), 입력수신부(230), 및 저장부(250) 중 적어도 하나를 제어할 수 있다. 일 실시예에 따르면, 처리부(240)는 통신부(210)를 통해 수신한 입력 문자열로부터 비속어를 필터링할 수 있다. 다른 일 실시예에 따르면 처리부(240)는 입력 수신부(230)를 통해 수신된 일련의 사용자 조작에 응답하여 입력 문자열을 생성할 수 있고, 생성된 입력 문자열로부터 비속어를 필터링할 수 있다. 또한, 처리부(240)는 사용자 단말(110)의 동작에 필요한 처리를 수행할 수 있다. 여기서, 처리의 수행은 저장부(250) 내에 저장된 프로그램 코드를 실행하는 것을 나타낼 수 있다.
일 실시예에 따르면, 처리부(240)는 입력 문자열을 획득하고, 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 검출된 변환 대상 문자를 자소로 변환하며, 자소를 조합하여 입력 문자열로부터 조합 문자열을 생성하고, 조합 문자열로부터 비속어를 검색하고, 검색된 비속어를 입력 문자열로부터 필터링하여 출력 문자열을 생성할 수 있다. 이러한 처리부(240)의 구체적인 동작은 하기 도 4 내지 도 14에서 상세히 설명한다.
저장부(250)는 사용자 단말(110)을 동작시키기 위한 명령어들을 포함하는 프로그램을 저장할 수 있다. 저장부(250)에 저장된 프로그램은 상술한 처리부(240)에 의해 실행될 수 있다. 예를 들어, 저장부(250)는 게임 프로그램을 저장할 수 있다. 또한, 저장부(250)는 비속어 목록을 저장할 수도 있다. 비속어 목록은 적어도 하나의 비속어를 포함할 수 있고, 서비스 제공자에 의해 비속어 목록에 포함되는 단어가 결정될 수 있다. 다만, 이로 한정하는 것은 아니고, 각 사용자 단말로부터 수집되는 비속어 정보에 기초하여, 새로운 단어가 비속어 목록에 비속어로서 추가될 수 있다.
도 3은 일 실시예에 따른 텍스트 필터링 서버의 구성을 도시한 블럭도이다.
텍스트 필터링 서버(120)(이하, 서버)는 통신부(310), 처리부(320), 및 저장부(330)를 포함한다.
통신부(310)는 사용자 단말과 통신할 수 있다. 예를 들어, 통신부(310)는 무선 통신 및 유선 통신 중 적어도 하나를 이용하여 사용자 단말과 통신할 수 있다. 일 실시예에 따르면 통신부(310)는 사용자 단말로부터 입력 문자열을 획득하기 위해 통신할 수 있다. 또한, 통신부(310)는 입력 문자열로부터 비속어를 필터링하여 생성된 출력 문자열을 사용자 단말로 제공하기 위해 해당 사용자 단말과 통신할 수도 있다.
예를 들어, 통신부(310)는 네트워크 인터페이스 카드(network interface card), 네트워크 인터페이스 칩(network interface chip) 및 네트워킹 인터페이스 포트(network interface port) 등과 같은 하드웨어 모듈(hardware module)일 수 있고, 네트워크 디바이스 드라이버(network device driver) 또는 네트워킹 프로그램(networking program)과 같은 소프트웨어 모듈(software module)일 수 있다.
처리부(320)는 게임 서비스를 제공하기 위한 처리를 수행할 수 있다. 예를 들어, 처리부(320)는 게임 서비스를 제공하기 위해 필요한 게임과 연관된 정보를 생성할 수 있다. 예를 들어, 처리부(320)는 게임과 연관된 정보로서, 게임의 리소스 등을 생성할 수 있다. 또한, 처리부(320)는 게임 서버(120)의 동작에 필요한 처리를 수행할 수 있다. 여기서, 처리의 수행은 게임 서버(120) 내에 저장된 프로그램 코드(program code)를 실행하는 것을 나타낼 수 있다. 예를 들어, 처리부(320)는 적어도 하나의 프로세서(processor) 또는 프로세서 내의 적어도 하나의 코어(core)를 포함할 수 있다.
일 실시예에 따르면 처리부(320)는 텍스트 필터링을 수행하기 위한 처리를 수행할 수 있다. 예를 들어, 처리부(320)는 획득된 입력 문자열로부터 비속어를 필터링하여 출력 문자열을 생성하도록 통신부(310) 및 저장부(330) 중 적어도 하나를 제어할 수 있다. 일 실시예에 따르면, 처리부(320)는 통신부(310)를 통해 수신한 입력 문자열로부터 비속어를 필터링할 수 있다. 또한, 처리부(320)는 서버(120)의 동작에 필요한 처리를 수행할 수 있다. 여기서, 처리의 수행은 저장부(330) 내에 저장된 프로그램 코드를 실행하는 것을 나타낼 수 있다. 처리부(320)는 도 2의 처리부(240)와 유사한 동작을 수행할 수 있다. 이러한 처리부(320)의 구체적인 동작은 하기 도 4 내지 도 14에서 상세히 설명한다.
저장부(330)는 필터링 목록을 저장할 수 있다. 저장부(330)는 서버(120)를 동작시키기 위한 명령어들을 포함하는 프로그램을 저장할 수 있다. 저장부(330)에 저장된 프로그램은 상술한 처리부(320)에 의해 실행될 수 있다.
이하, 도 2의 사용자 단말(110) 및 도 3의 서버(120)는 텍스트 필터링 장치라고 나타낼 수 있다.
도 4는 일 실시예에 따른 텍스트 필터링 방법을 도시한 흐름도이다.
우선, 단계(410)에서 텍스트 필터링 장치는 입력 문자열을 획득할 수 있다. 예를 들어, 텍스트 필터링 장치는 사용자로부터 사용자 조작의 수신에 응답하여 입력 문자열을 획득하거나, 외부 장치(예를 들어, 다른 사용자 단말 등)로부터 입력 문자열을 수신할 수 있다. 여기서, 텍스트 필터링 장치는 입력 문자열을 전처리할 수 있다. 전처리를 통해, 텍스트 필터링 장치는 보다 정확하게 비속어를 검색해낼 수 있다. 입력 문자열의 전처리는 하기 도 5에서 상세히 설명한다.
그리고 단계(420)에서 텍스트 필터링 장치는 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 검출된 변환 대상 문자를 자소로 변환할 수 있다. 여기서, 변환 대상 문자는 해당 문자에 대응하는 자소로 변환 가능한 문자를 나타낼 수 있다. 예를 들어, 변환 대상 문자가 한글인 경우 해당 문자를 구성하는 자소로 분리될 수 있다. 다른 예를 들어, 변환 대상 문자가 특수 문자 또는 영문 알파벳인 경우 해당 문자에 대응하는 자소로 변환될 수 있다. 다만, 모든 문자가 변환 가능한 것은 아니고, 텍스트 필터링 장치는 변환 가능한 것으로 등록된 문자만을 변환 대상 문자로 검색할 수 있다.
일 실시예에 따르면 텍스트 필터링 장치는 검출된 변환 대상 문자를 한글 자소 또는 한글 문자로 변환할 수 있다. 예를 들어, 텍스트 필터링 장치는 입력 문자열로부터 한글이 검출되는 경우에 응답하여, 문자열 중 검출된 한글을 한글 자소로 분리할 수 있다. 텍스트 필터링 장치는 입력 문자열 중 나머지 문자를 한글 자소로 변환할 수 있다. 나머지 문자는 입력 문자열에서 한글을 제외한 문자를 나타낼 수 있고, 텍스트 필터링 장치는 나머지 문자 중 변환 대상 문자를 검색하여 변환할 수 있다.
예를 들어, 텍스트 필터링 장치는 검출된 변환 대상 문자가 외국 문자로 식별되는 경우에 응답하여, 변환 대상 문자를 외국 문자의 한국어 발음에 대응하는 한글 자소 및 상기 외국 문자와 유사한 형태의 한글 자소 중 하나로 변환할 수 있다. 외국 문자는 한국 이외에서 사용되는 언어를 표현하는 문자를 나타낼 수 있다. 다른 예를 들어, 텍스트 필터링 장치는 검출된 변환 대상 문자가 기 등록된 특수 문자로 식별되는 경우에 응답하여, 변환 대상 문자를 특수 문자에 대응하는 한글 자소로 변환할 수 있다. 구체적으로, 텍스트 필터링 장치는 변환 대상 문자를, 특수 문자와 유사한 형태를 가지는 한글 자소로 변환할 수 있다. 상술한 변환 대상 문자를 자소를 변환하는 과정은 하기 도 6에서 상세히 설명한다.
이어서 단계(430)에서 텍스트 필터링 장치는 자소를 조합하여 입력 문자열로부터 조합 문자열을 생성할 수 있다. 예를 들어, 텍스트 필터링 장치는 전처리된 입력 문자열에 기초하여 조합 문자열을 생성할 수 있다. 본 명세서에서 조합 문자열은 상술한 단계(420)에서 생성된 자소들을 조합한 문자들의 집합을 나타낼 수 있다. 조합 문자열의 생성은 하기 도 6에서 상세히 설명한다.
일 실시예에 따르면, 텍스트 필터링 장치는 외국 문자 및 특수 문자를 한글 자소로 변환하면서, 한글도 한글 자소로 분리한 후에 모두 조합할 수 있으나, 이로 한정하는 것은 아니다. 텍스트 필터링 장치는 한글은 유지하고, 외국 문자 및 특수 문자 등만 한글 자소로 변환한 후에 한글로 조합할 수 있다.
그리고 단계(440)에서 텍스트 필터링 장치는 조합 문자열로부터 비속어를 검색하고, 검색된 비속어를 입력 문자열로부터 필터링하여 출력 문자열을 생성할 수 있다. 예를 들어, 텍스트 필터링 장치는 조합 문자열로부터 비속어를 검출할 수 있다. 텍스트 필터링 장치는 검출된 비속어에 대응하는 한글을 필터링 문자로 교체(replace)하여 출력 문자열을 생성할 수 있다. 비속어 검출은 하기 도 12 및 도 13에서 상세히 설명하고, 출력 문자열 생성은 하기 도 14에서 상세히 설명한다.
도 5는 일 실시예에 따른 텍스트 전처리 과정을 도시한 도면이다.
일 실시예에 따르면 텍스트 필터링 장치는 입력 문자열(501)로부터 공백, 전처리 대상 특수 문자, 불용어(stop word), 중복 문자, 및 정상 단어 중 적어도 하나를 제거함으로써 입력 문자열(501)을 전처리할 수 있다. 도 5는 상술한 전처리 과정의 예시를 설명하는 도면으로서, 전처리의 각 단계의 순서가 도시된 바로 한정되는 것은 아니고, 또한 도 5에 도시된 단계의 일부만이 적용될 수도 있다.
우선, 텍스트 필터링 장치는 입력 문자열(501)로부터 공백을 제거(510)할 수 있다. 도 5에서 텍스트 필터링 장치는 "C/발 캣ㅅhㄲ!가 처음부터 조오오오온나 bogi말라고 g!1iiii랄"를 입력 문자열(501)로서 획득할 수 있고, 해당 입력 문자열(501)로부터 공백을 제거할 수 있다.
그리고 텍스트 필터링 장치는 전처리 대상 특수 문자를 제거(520)할 수 있다. 전처리 대상 특수 문자는 비속어 필터링에서 제외되는 것으로 등록된 특수 문자로서, 예를 들어, 비속어로 사용되지 않은 특수 문자일 수 있다. 전처리 대상 특수 문자는 서비스 제공자가 운영하는 서버에 의해 등록될 수 있으나, 이로 한정하는 것은 아니고, 사용자 단말에 의해 등록될 수도 있다. 도 5에서는, 텍스트 필터링 장치는 "/", "?"를 전처리 대상 특수 문자로서 제거(520)할 수 있다. 다만, 전처리 대상 특수 문자를 상술한 바로 한정하는 것은 아니고, "1", "~", "!", "@", "#
, "$", "%", "^", "&", "*", "(", ")", "+", "`", "[", 및 "]" 등을 포함할 수 있다.
이어서 텍스트 필터링 장치는 중복 문자를 제거(530)할 수 있다. 중복 문자는 서로 인접한 음절 또는 자소가 서로 동일한 문자를 나타낼 수 있다. 도 5에서는, 텍스트 필터링 장치는 "오오" 및 "iii"를 중복 문자로서 제거(530)할 수 있다. 예를 들어, 중복 문자의 제거(530)는 중복 자소의 제거를 포함할 수 있다. 다른 예를 들어, 텍스트 필터링 장치는 "개에에에에에새에에에에에끼이이이"에서 중복 문자를 제거하여 "개새끼"를 생성하거나, "개개개개새새새새새끼끼끼"로부터 중복 문자를 제거하여 "개새끼"를 생성하거나, "fuuuuuuuuuuuuuuuuuuuuck"로부터 중복 문자를 제거하여 "fuck"을 생성할 수 있다.
그리고 텍스트 필터링 장치는 불용어(stop word)를 제거(540)할 수 있다. 불용어는 비속어 필터링에서 불필요한 것으로 등록된 단어로서, 예를 들어, 의미를 가지지 않는 단어일 수 있다. 불용어는 서비스 제공자의 서버에 의해 등록될 수 있으나, 이로 한정하는 것은 아니고, 사용자 단말에 의해 등록될 수도 있다. 도 5에서 텍스트 필터링 장치는 "가", 및 "부터"와 같은 조사를 불용어로서 제거(540)할 수 있다. 다만, 불용어를 상술한 바로 한정하는 것은 아니고, "에게", "께서", "께옵서", "으로", "와", 및 "으로" 등을 포함할 수 있다.
이어서 텍스트 필터링 장치는 정상 단어를 제거(550)할 수 있다. 정상 단어는 비속어 필터링에서 제외되는 것으로 등록된 정상적인 단어로서, 예를 들어, 비속어가 아닌 단어일 수 있다. 정상 단어는 서비스 제공자의 서버에 의해 등록될 수 있으나, 이로 한정하는 것은 아니고, 사용자 단말에 의해 등록될 수도 있다. 도 5에서 텍스트 필터링 장치는 "처음"을 정상 단어로서 제거(550)할 수 있다. 정상 단어는 화이트리스트(White List)로 등록된 단어를 나타낼 수 있다.
상술한 전처리 과정을 통해 텍스트 필터링 장치는 전처리된 입력 문자열(502)로서, " C발캣ㅅhㄲ!조오온나bogi말라고g!1i랄"을 생성할 수 있다.
이후, 텍스트 필터링 장치는 전처리된 입력 문자열(502)로부터 변환 대상 문자를 검색하고, 조합 문자열을 생성할 수 있다.
도 6은 일 실시예에 따른 텍스트 변환 과정을 도시한 도면이다.
텍스트 필터링 장치는, 도 4의 단계(420)에서 설명한 바와 같이 입력 문자열의 한글 및 특수 문자 등을 한글 자소로 변환할 수 있고, 도 4의 단계(430)에서 설명한 바와 같이 자소들을 조합하여 조합 문자열(603)을 생성할 수 있다. 도 6은 텍스트 필터링 장치가 도 5에서 생성된 전처리된 문자열로부터 조합 문자열(603)을 생성하는 과정을 예시적으로 설명한다.
우선, 텍스트 필터링 장치는 전처리된 입력 문자열(502)로부터 외국 문자 및 특수 문자를 한글 자소로 변환(610)할 수 있다. 예를 들어, 도 6에서 텍스트 필터링 장치는 외국 문자를 그에 대응하는 한국어 발음을 가지는 한글 자소로 변환할 수 있는 바, "C"는 "씨"로, "b"는 "ㅂ"로, "o"는 "ㅗ"로, "g"는 "ㅈ"로, "i"는 "ㅣ"로 변환할 수 있다. 또한, 텍스트 필터링 장치는 특수 문자를 그에 대응하는 형태를 가지는 한글 자소로 변환할 수 있는 바, "h"는 "ㅐ"로, "!"는 "ㅣ"로, "1"은 "ㅣ"로 변환할 수 있다.
그리고 텍스트 필터링 장치는 입력 문자열 중 한글 문자를 한글 자소들로 분리(620)할 수 있다. 예를 들어, 도 6에서 텍스트 필터링 장치는 "씨발캣"을 " ㅆㅣㅂㅏㄹㅋㅐㅅ"으로, "조오온나"를 "ㅈㅗㅇㅗㅇㅗㄴㄴㅏ"로, "말라고"를 "ㅁㅏㄹㄹㅏㄱㅗ"로, "랄"을 "ㄹㅏㄹ"로 변환할 수 있다.
이어서 텍스트 필터링 장치는 외국 문자 및 특수 문자로부터 변환된 자소 및 한글로부터 분리된 자소를 조합하여 입력 문자열로부터 조합 문자열(603)을 생성할 수 있다. 예를 들어, 도 6에서 텍스트 필터링 장치는 "ㅆㅣㅂㅏㄹㅋㅐㅅㅅㅐㄲㅣㅈㅗㅇㅗㅇㅗㄴㄴㅏㅂㅗㅈㅣㅁㅏㄹㄹㅏㄱㅗㅈㅣㅣㅣㄹㅏㄹ"을 조합하여, "씨발캣새끼조오온나보지말라고지ㅣㅣ랄"을 조합 문자열(603)로서 생성할 수 있다.
다른 예를 들어, 텍스트 필터링 장치는 "야 KㅐSㅐㄲl야"를 입력 문자열로 수신한 경우에 응답하여, "야 개새끼야"를 조합 문자열로서 생성할 수 있다. 텍스트 필터링 장치는 도 6에 도시된 텍스트 변환 과정을 통해, "Sibal"은 "시발"로, "nimi"는 "니미"로, "giral"은 "지랄"로, "yadong"은 "야동"으로, "씨bal"은 "씨발"로 변환 및 조합할 수 있다.
일 실시예에 따르면, 텍스트 필터링 장치는 자소들로부터 직접 비속어를 필터링하는 대신, 자소들로부터 조합 문자열을 생성하여 조합 문자열로부터 비속어를 필터링함으로써, 필터링의 정확도 및 속도를 개선할 수 있다.
도 7은 일 실시예에 따른 텍스트 변환 맵을 도시한 도면이다.
텍스트 필터링 장치는 텍스트 변환 맵에 기초하여, 외국 문자 및 특수 문자를 한글 자소로 변환할 수 있다. 텍스트 변환 맵은 임의의 문자에 대해 해당 문자가 변환되는 한글 자소 또는 한글 문자가 매핑된 정보를 나타낼 수 있다. 예를 들어, 텍스트 변환 맵은 유사 자소 맵(710) 및 유사 한글 맵(720) 등을 포함할 수 있다.
유사 자소 맵(710)은 외국 문자 및 특수 문자에 대해 해당 문자가 변환되어야 하는 한글 자소가 매핑된 정보를 나타낼 수 있다. 예를 들어, 유사 자소 맵(710)에서 "n"에 대해 "ㄴ"이 매핑되고, "A"에 대해 "ㅏ"가 매핑될 수 있다.
유사 한글 맵(720)은 외국 문자 및 특수 문자에 대해 해당 문자가 변환되어야 하는 한글 문자가 매핑된 정보를 나타낼 수 있다. 예를 들어, 유사 한글 맵(720)에서 Z에 대해 "지"가 매핑되고, "T"에 대해 "티"가 매핑될 수 있다.
다만, 도 7에 도시된 유사 자소 맵(710) 및 유사 한글 맵(720)은 단순 예시로서, 설계에 따라 변경될 수 있다. 또한, 텍스트 변환 맵의 매핑 관계는 서비스 제공 중에도 서비스 제공자 또는 사용자 단말에 의해 변경될 수 있다. 매핑 관계는 문자 대 자소 간의 매핑 관계 또는 문자 대 문자 간의 매핑 관계 등을 포함할 수 있다.
도 8은 일 실시예에 따른 텍스트 후처리 과정을 도시한 도면이다.
텍스트 필터링 장치는 조합 문자열(603)로부터 공백, 전처리 대상 특수 문자, 불용어(stop word), 중복 문자, 및 정상 단어 중 적어도 하나를 제거함으로써 후처리된 조합 문자열(804)을 후처리할 수 있다.
우선, 텍스트 필터링 장치는 조합 문자열(603)로부터 정상 단어를 제거(810)할 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 텍스트 필터링 장치는 "보지말라고"를 정상 단어로서 제거(810)할 수 있다.
그리고 텍스트 필터링 장치는 조합 문자열(603)로부터 중복 문자를 제거(820)할 수 있다. 예를 들어, 텍스트 필터링 장치는 도 8에서 "지ㅣㅣ"로부터 "ㅣㅣ"를 중복 문자로서 제거(820)할 수 있다.
도 8에서는 정상 단어 제거(810) 및 중복 문자 제거(820)만을 도시하였으나, 이로 한정하는 것은 아니고, 텍스트 필터링 장치는 다른 후처리 동작들도 수행할 수 있다. 또한, 후처리 동작의 순서를 도 8에 도시된 바로 한정하는 것도 아니다.
이후, 텍스트 필터링 장치는 후처리된 조합 문자열(804)로부터 비속어를 검색할 수 있다. 도 8에서 상술한 바와 같이, 텍스트 필터링 장치는 조합 문자열(603)을 후처리함으로써, 필터링의 정확도를 개선할 수 있다. 조합되기 전의 자소로부터 직접 비속어를 필터링할 경우, 도 8에 도시된 예시에서는 비속어가 아닌 "보지말라고"에서 "ㅂㅗㅈㅣ"가 필터링되는 오류가 발생할 수 있고, "지ㅣㅣ랄"에서 "지랄"이 필터링에서 누락되는 오류가 발생할 수 있다. 일 실시예에 따른 텍스트 필터링 장치는 조합 문자열(603)의 후처리를 통해 불필요한 필터링을 감소시키고, 비속어의 필터링 누락 가능성을 감소시킬 수 있다.
비속어 검색은 하기 도 9 내지 도 14에서 상세히 설명한다.
도 9는 일 실시예에 따른 필터링 목록을 이용한 필터링의 예시를 도시한 도면이다.
텍스트 필터링 장치는 필터링 목록(910)에 기초하여 후처리된 조합 문자열(804)로부터 비속어를 필터링할 수 있다. 필터링 목록(910)은 복수의 비속어들(911, 912, 913)을 포함할 수 있다.
일 실시예에 따르면, 텍스트 필터링 장치는 필터링 목록(910)에 포함되는 비속어들(911, 912, 913)을 순차적으로 후처리된 조합 문자열(804)로부터 검색할 수 있다. 예를 들어, 텍스트 필터링 장치는 도 9에 도시된 예시에서, "씨발"(911), "개새끼"(912), "지랄"(913)을 후처리된 조합 문자열(804)로부터 검색하여 필터링할 수 있다.
일 실시예에 따르면 텍스트 필터링 장치는 입력 문자열을 입력한 사용자 단말과 연관된 다른 사용자 단말로부터 입력 문자열에 포함된 비속어 정보를 수신할 수 있다. 비속어 정보는 사용자 단말에 의해 입력된 입력 문자열이 비속어를 포함하고 있다고 다른 사용자 단말이 신고한 정보를 나타낼 수 있다. 텍스트 필터링 장치는 수신된 비속어 정보에 대응하는 비속어가 입력 문자열에서 필터링되지 않은 경우에 응답하여 필터링 목록(910)을 업데이트할 수 있다. 따라서, 텍스트 필터링 장치는 서비스 제공자의 수동적인 추가 없이도, 사용자 단말들로부터 정보를 수집하여 필터링 목록(910)을 업데이트할 수 있다.
도 10은 일 실시예에 따른 텍스트 필터링을 위한 유사도 산출의 예시를 도시한 도면이다.
일 실시예에 따르면 텍스트 필터링 장치는 조합 문자열(1021)에서 필터링 단어(1011)에 대응하는 대상 문자열 및 필터링 단어(1011) 간의 유사도를 산출할 수 있다. 텍스트 필터링 장치는 산출된 유사도가 임계값을 초과하는 경우에 응답하여, 대상 문자열을 비속어로 결정할 수 있다.
예를 들어, 텍스트 필터링 장치는 조합 문자열(1021)의 적어도 일부 자소 및 필터링 단어(1011)에서 그에 대응하는 자소 간의 자소 유사도(1032)를 산출할 수 있다. 구체적으로 텍스트 필터링 장치는 조합 문자열(1021)의 각각의 한글을 한글 자소(1022)로 분리할 수 있다. 텍스트 필터링 장치는 분리된 한글 자소(1022)의 각각과 필터링 단어(filtering word) (1011)에 대응하는 한글 자소(1012) 간의 유사도를 산출할 수 있다. 예를 들어, 텍스트 필터링 장치는 자소 유사도(1032)에 기초하여 조합 문자열(1021) 및 필터링 단어(1011) 간의 유사도를 산출할 수 있다. 텍스트 필터링 장치는 유사도에 기초하여 필터링할 문자를 검색하여 결정할 수 있다.
도 10에 도시된 예시에서, 텍스트 필터링 장치는 필터링 목록에 포함된 비속어로서 "개새끼"를 조합 문자열(1021)의 대상 문자열인 "개식끼"와의 유사도를 산출할 수 있다. 텍스트 필터링 장치는 대상 문자열의 각각의 한글을 " ㄱ ㅐ ㅅ ㅣ ㄱ ㄲ ㅣ"로 분리할 수 있고, 필터링 단어(1011)를 " ㄱ ㅐ ㅅ ㅐ ㄲ ㅣ"로 분리할 수 있다. 예를 들어, 텍스트 필터링 장치는 조합 문자열(1021)의 자소 "ㄱ" 및 필터링 단어(1011)의 자소 "ㄱ" 간의 자소 유사도를 1, 조합 문자열(1021)의 자소 "ㅐ" 및 필터링 단어(1011)의 자소 "ㅐ" 간의 자소 유사도를 1, 조합 문자열(1021)의 자소 "ㅅ" 및 필터링 단어(1011)의 자소 "ㅅ" 간의 자소 유사도를 1, 조합 문자열(1021)의 자소 "ㅐ" 및 필터링 단어(1011)의 자소 "ㅣ" 간의 자소 유사도를 0.8, 조합 문자열(1021)의 자소 "ㄲ" 및 필터링 단어(1011)의 자소 "ㄲ" 간의 자소 유사도를 1, 조합 문자열(1021)의 자소 "ㅣ" 및 필터링 단어(1011)의 자소 "ㅣ" 간의 자소 유사도를 1로 산출할 수 있다.
또한, 조합 문자열(1021)의 한 음절 및 필터링 단어(1011)에서 그에 대응하는 음절 중 하나에 종성이 존재하지 않는 경우(예를 들어, 한쪽에 받침이 없는 경우), 텍스트 필터링 장치는 자소 유사도를 0으로 산출할 수 있다. 다만, 조합 문자열(1021) 및 필터링 단어(1011) 중 어느 하나에 종성이 없는 경우의 자소 유사도를 상술한 바로 한정하는 것은 아니고, 텍스트 필터링 장치는 0.5와 같이 다른 수치로 한쪽에 받침이 없는 경우의 자소 유사도를 설정할 수도 있다.
도 10에 도시된 예시에서, 필터링 단어(1011) "개새끼"와 조합 문자열(1021) "개식끼" 간의 유사도는 자소 유사도(1032)의 합인 5.8로 산출될 수 있다. 다만, 유사도를 이로 한정하는 것은 아니고, 텍스트 필터링 장치는 필터링 단어(1011) 및 조합 문자열(1021) 중 적어도 하나의 자소 갯수 및 각 자소의 자소 유사도(1032)에 기초하여 필터링 단어(1011) 및 조합 문자열(1021) 간의 유사도를 산출할 수도 있다. 예를 들어, 텍스트 필터링 장치는 조합 문자열(1021) "개식끼"의 총 자소 개수가 7이므로, 5.8/7*100=83%로 유사도를 산출할 수도 있다. 일 실시예에 따르면, 임계값이 80%로 설정된 경우, 도 10에 도시된 예시는 임계값을 초과하므로 텍스트 필터링 장치는 조합 문자열이 비속어인 것으로 판단할 수 있다.
다른 예를 들어, 조합 문자열이 "캐새끼"인 경우, ㅋ≒ㄱ, ㅐ=ㅐ, ㅅ=ㅅ, ㄲ=ㄲ, ㅣ=ㅣ이므로, 텍스트 필터링 장치는 필터링 단어(1011) "개새끼"와의 유사도를 96.67%로 산출할 수 있다. 조합 문자열이 "개시끼"인 경우, 텍스트 필터링 장치는 ㄱ=ㄱ, ㅐ=ㅐ, ㅅ=ㅅ, ㅣ≠ㅐ, ㄲ=ㄲ, ㅣ=ㅣ이므로, 필터링 단어(1011) "개새끼"와의 유사도를 83.33%로 산출할 수 있다. 조합 문자열이 "걔색기"인 경우, 텍스트 필터링 장치는 ㄱ=ㄱ, ㅒ≒ㅐ, ㅅ=ㅅ, ㅐ=ㅐ, ㄱ≠(받침없음), ㄱ≒ㄲ, ㅣ=ㅣ이므로, 필터링 단어(1011) "개새끼"와의 유사도를 80.00%로 산출할 수 있다.
도 11은 일 실시예에 따른 음절 유사도 설정의 예시를 도시한 도면이다.
일 실시예에 따르면 텍스트 필터링 장치는 조합 문자열의 각 음절 및 필터링 단어의 각 음절 간의 음절 유사도를 산출할 수 있다. 텍스트 필터링 장치는 음절 유사도에 기초하여, 조합 문자열로부터 필터링 단어를 검색할 수 있다. 텍스트 필터링 장치는 자소 간의 유사도를 정의하는 자소 유사도 맵에 기초하여 자소 유사도를 산출할 수 있고, 각 음절을 구성하는 자소들의 자소 유사도를 합산하여 음절 유사도를 산출할 수 있다. 자소 유사도 맵은 초성 유사도 맵(1110), 중성 유사도 맵(1120), 및 종성 유사도 맵(1130)을 포함할 수 있다.
예를 들어, 텍스트 필터링 장치는 초성 유사도 맵(1110), 중성 유사도 맵(1120), 및 종성 유사도 맵(1130)에 기초하여 음절 유사도를 산출할 수 있다. 초성 유사도 맵(1110)은 조합 문자열의 각 음절의 초성 및 필터링 단어의 각 음절의 초성 간의 유사도를 정의하는 맵을 나타낼 수 있다. 중성 유사도 맵(1120)은 조합 문자열의 각 음절의 중성 및 필터링 단어의 각 음절의 중성 간의 유사도를 정의하는 맵을 나타낼 수 있다. 종성 유사도 맵(1130)은 조합 문자열의 각 음절의 종성 및 필터링 단어의 각 음절의 종성 간의 유사도를 정의하는 맵을 나타낼 수 있다. 텍스트 필터링 장치는 초성 유사도 맵(1110)에 기초하여 조합 문자열 및 필터링 단어 간의 초성 유사도, 중성 유사도 맵(1120)에 기초하여 조합 문자열 및 필터링 단어 간의 중성 유사도, 및 종성 유사도 맵(1130)에 기초하여 조합 문자열 및 필터링 단어 간의 종성 유사도를 산출할 수 있고, 초성 유사도, 중성 유사도, 및 종성 유사도를 합산하여 음절 유사도를 산출할 수 있다.
예를 들어, 텍스트 필터링 장치는, 자소간 유사도로서, ㄱ ≒ ( ㄲ, ㅋ )의 관계에 대해 0.8, ㄷ ≒ ( ㄸ, ㅌ, ㄾ )의 관계에 대해 0.9를 설정할 수 있다. 자소가 동일한 경우, 텍스트 필터링 장치는 자소 간 유사도를 1로 설정할 수 있다.
텍스트 필터링 장치는 입력 문자열을 입력한 사용자 단말과 연관된 다른 사용자 단말로부터 입력 문자열에 포함된 비속어 정보를 수신할 수 있다. 텍스트 필터링 장치는 수신된 비속어 정보에 대응하는 비속어의 각 문자에 대응하는 자소 및 입력 문자열에서 비속어에 대응하는 대상 문자열의 각 자소 간의 자소 유사도를 업데이트할 수 있다. 따라서, 텍스트 필터링 장치는 다른 사용자 단말의 신고에 의해 수집되는 비속어 정보를 이용하여, 자소 유사도를 업데이트할 수 있다. 예를 들어, 특정 비속어에 대한 비속어 정보의 수집이 누적되는 경우에 응답하여, 텍스트 필터링 장치는 해당 비속어 정보가 누적된 횟수에 비례하여 비속어 정보에 대응하는 비속어의 각 문자에 대응하는 자소 및 입력 문자열에서 비속어에 대응하는 대상 문자열의 각 자소 간의 자소 유사도를 증가시킬 수 있다.
도 12 및 도 13은 일 실시예에 따른 조합 문자열 및 필터링 단어 간의 유사도 산출 과정을 설명하는 도면이다.
도 12에 도시된 바와 같이, 텍스트 필터링 장치는 조합 문자열(1210)로부터 복수의 대상 문자열을 순차적으로 선택할 수 있다. 예를 들어, 조합 문자열(1210)로부터 필터링 단어(1220)의 음절 갯수에 기초하여 대상 문자열을 선택할 수 있다. 텍스트 필터링 장치는 도 12에서 필터링 단어(1220) "ㄱㅐㅅㅐㄲㅣ"에 대응하는 대상 문자열을 "ㅆㅣㅂㅏㄹㅋㅐㅅ", "ㅂㅏㄹㅋㅐㅅㅅㅐ", "ㅋㅐㅅㅅㅐㄲㅣ", 및 "ㅅㅐㄲㅣㅈㅗㄴ" 등과 같이 순차적으로 선택할 수 있다. 텍스트 필터링 장치는 일방향(1290)으로 조합 문자열(1210)로부터 대상 문자열을 순차적으로 선택할 수 있으나, 방향으로 도 12에 도시된 바로 한정하는 것은 아니다. 예를 들어, 도 12에서는 텍스트 필터링 장치가 조합 문자열(1210)의 시작 지점부터 종료 지점을 향하는 방향(1290)으로 대상 문자열을 순차적으로 선택하는데, 반대로 종료 지점부터 시작 지점을 향하는 방향으로 대상 문자열을 순차적으로 선택할 수도 있다.
텍스트 필터링 장치는 복수의 대상 문자열의 각각과 필터링 단어(1220) 간의 유사도를 산출할 수 있다. 텍스트 필터링 장치는 복수의 대상 문자열 중 유사도가 임계값을 초과하는 대상 문자열을 비속어로 결정할 수 있다.
도 13에 도시된 바와 같이 텍스트 필터링 장치는 음절 단위로 필터링 단어 및 조합 문자열(1210) 간의 유사도를 계산할 수 있다. 예를 들어, 텍스트 필터링 장치는 필터링 단어의 각각의 음절(1301, 1302, 1303)의 자소와 조합 문자열(1210)의 각각의 음절의 자소 간의 유사도를 산출할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는 자소로부터 직접 유사도를 산출하는 대신, 조합 문자열(1210)을 생성하여 음절 단위로 음절 유사도를 산출하여 총 유사도를 산출하므로, 필터링 속도가 개선될 수 있다.
예를 들어, 도 13에 도시된 예시에서 자소로부터 직접 유사도를 산출할 경우에는, 필터링 단어의 자소 "ㄱ"을 조합 문자열(1210)의 22개의 자소에 대해 모두 유사도를 계산하고, 필터링 단어의 자소 "ㅐ"을 다시 22개의 자소에 대해 모두 유사도를 계산하여야 하므로 총 44회의 자소 유사도 계산이 수행될 수 있다. 이와 달리, 일 실시예에 따른 텍스트 필터링 장치는 필터링 단어의 음절 "ㄱㅐ"(1301)와 조합 문자열(1210)의 음절 "ㅆㅣ", 음절 "ㅂㅏㄹ", 음절 "ㅋㅐㅅ", 음절 "ㅅㅐ", 음절 "ㄲㅣ", 음절 "ㅈㅗㄴ", 음절 "ㄴㅏ", 음절 "ㅈㅣ", 및 음절 "ㄹㅏㄹ" 간의 음절 유사도를 산출할 수 있다. 따라서, 일 실시예에 따른 텍스트 필터링 장치는 필터링 단어의 음절 "ㄱㅐ"(1301)에 대해 18회만 자소 유사도 계산을 수행하면 되므로, 유사도 계산에 소요되는 시간 및 연산량 등이 감소될 수 있다.
텍스트 필터링 장치는 도 10에서 설명한 바와 유사한 방식으로 자소 유사도를 산출하여 각 음절에 대한 음절 유사도를 산출할 수 있다. 텍스트 필터링 장치는 조합 문자열(1210)로부터 선택된 대상 문자열의 각 음절에 대응하는 음절 유사도를 합산하여, 선택된 대상 문자열 및 필터링 단어 간의 유사도(1390)를 산출할 수 있다. 일 실시예에 따르면 텍스트 필터링 장치는 임계값(예를 들어, 80%로 설정된 것을 가정)을 초과하는 유사도를 가지는 대상 문자열을 필터링 단어인 것으로 결정할 수 있고, 도 13에서는 대상 문자열 "ㅋㅐㅅㅅㅐㄲㅣ"와 필터링 단어 "개새끼" 간의 유사도(1391)가 83%이므로 텍스트 필터링 장치는 대상 문자열 "캣새끼"를 필터링 단어로 검색할 수 있다.
도 14는 일 실시예에 따라 필터링이 완료된 출력 문자열의 예시를 설명하는 도면이다.
텍스트 필터링 장치는 조합 문자열로부터 비속어를 검출할 수 있다. 예를 들어, 텍스트 필터링 장치는 검출된 비속어에 대응하는 한글을 필터링 문자로 교체(replace)하여 출력 문자열(1405)을 생성(1410)할 수 있다. 필터링 문자는 비속어를 교체하기 위해 지정된 문자로서, 서비스 제공자 또는 사용자 단말에 의해 지정될 수 있고, 도 14에서는 "*"인 것으로 설명한다.
예를 들어, 도 14에 도시된 입력 문자열(501)(501) "C/발? 캣ㅅhㄲ!가 처음부터 조오오오온나 bogi말라고 g!1iiii랄"에서 "씨발", "개새끼", "존나", 및 "지랄" 등이 비속어로서 검색될 수 있고, 텍스트 필터링 장치는 검색된 비속어들을 필터링 문자 "*"로 대체하여 출력 문자열(1405)을 생성할 수 있다.
일 실시예에 따르면, 텍스트 필터링 장치가 사용자 단말인 경우, 사용자 단말은 생성된 출력 문자열(1405)을 디스플레이를 통해 표시할 수 있다. 다른 일 실시예에 따라 텍스트 필터링 장치가 서버인 경우, 서버는 생성된 출력 문자열(1405)을 서버에 접속한 사용자 단말로 송신할 수 있다.
일 실시예에 따른 텍스트 필터링 장치는, 사용자가 외국 문자 및 특수 문자 등을 조합하여 비속어에 정확하게 일치하지 않는 형태의 문자열을 입력하더라도, 정확하고 효율적으로 비속어를 검출하여 필터링할 수 있다. 예를 들어, 텍스트 필터링 장치는 필터링 목록에 추가된 필터링 단어와 유사한 발음 내지는 유사한 형태를 가지는 문자열을 별도로 추가하지 않더라도, 비속어로서 검출할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable 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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 텍스트 필터링 시스템
110: 사용자 단말
120: 서버

Claims (19)

  1. 텍스트 필터링 장치에 의해 수행되는 방법으로서,
    입력 문자열을 획득하는 단계;
    상기 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 상기 검출된 변환 대상 문자를 자소로 변환하는 단계;
    상기 자소를 조합하여 상기 입력 문자열로부터 조합 문자열을 생성하는 단계; 및
    상기 조합 문자열로부터 비속어를 검색하는 단계
    를 포함하고,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열의 각 음절 및 필터링 단어의 각 음절 간의 음절 유사도를 산출하는 단계; 및
    상기 음절 유사도에 기초하여, 상기 조합 문자열로부터 상기 필터링 단어를 검색하는 단계
    를 포함하는 텍스트 필터링 방법.
  2. 제1항에 있어서,
    상기 자소로 변환하는 단계는,
    상기 검출된 변환 대상 문자를 한글 자소 또는 한글 문자로 변환하는 단계
    를 포함하는 텍스트 필터링 방법.
  3. 제1항에 있어서,
    상기 검출된 변환 대상 문자를 자소로 변환하는 단계는,
    상기 입력 문자열로부터 한글이 검출되는 경우에 응답하여, 상기 문자열 중 상기 검출된 한글을 한글 자소로 분리하는 단계; 및
    상기 입력 문자열 중 나머지 문자를 한글 자소로 변환하는 단계
    를 포함하는 텍스트 필터링 방법.
  4. 제1항에 있어서,
    상기 입력 문자열을 획득하는 단계는,
    상기 입력 문자열로부터 공백, 전처리 대상 특수 문자, 불용어(stop word), 중복 문자, 및 정상 단어 중 적어도 하나를 제거함으로써 입력 문자열을 전처리하는 단계
    를 포함하고,
    상기 검출된 변환 대상 문자를 자소로 변환하는 단계는,
    상기 전처리된 입력 문자열로부터 상기 변환 대상 문자를 검색하는 단계
    를 포함하며,
    상기 조합 문자열을 생성하는 단계는,
    상기 전처리된 입력 문자열에 기초하여 상기 조합 문자열을 생성하는 단계
    를 포함하는 텍스트 필터링 방법.
  5. 제1항에 있어서,
    상기 검출된 변환 대상 문자를 자소로 변환하는 단계는,
    상기 검출된 변환 대상 문자가 외국 문자로 식별되는 경우에 응답하여, 상기 변환 대상 문자를 상기 외국 문자의 한국어 발음에 대응하는 한글 자소 및 상기 외국 문자와 유사한 형태의 한글 자소 중 하나로 변환하는 단계
    를 포함하는 텍스트 필터링 방법.
  6. 제1항에 있어서,
    상기 검출된 변환 대상 문자를 자소로 변환하는 단계는,
    상기 검출된 변환 대상 문자가 기 등록된 특수 문자로 식별되는 경우에 응답하여, 상기 변환 대상 문자를 상기 특수 문자에 대응하는 한글 자소로 변환하는 단계
    를 포함하는 텍스트 필터링 방법.
  7. 제6항에 있어서,
    상기 변환 대상 문자를 상기 특수 문자에 대응하는 한글 자소로 변환하는 단계는,
    상기 변환 대상 문자를, 상기 특수 문자와 유사한 형태를 가지는 한글 자소로 변환하는 단계
    를 포함하는 텍스트 필터링 방법.
  8. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열로부터 공백, 전처리 대상 특수 문자, 불용어(stop word), 중복 문자, 및 정상 단어 중 적어도 하나를 제거함으로써 후처리된 조합 문자열을 후처리하는 단계; 및
    상기 후처리된 조합 문자열로부터 상기 비속어를 검색하는 단계
    를 포함하는 텍스트 필터링 방법.
  9. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열로부터 비속어를 검출하는 단계
    를 포함하고,
    상기 검색된 비속어를 상기 입력 문자열로부터 필터링하는 단계
    를 더 포함하는 텍스트 필터링 방법.
  10. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열의 각각의 한글을 한글 자소로 분리하는 단계;
    상기 분리된 한글 자소의 각각과 필터링 단어(filtering word)에 대응하는 한글 자소 간의 유사도를 산출하는 단계; 및
    상기 유사도에 기초하여 필터링할 문자를 결정하는 단계
    를 포함하는 텍스트 필터링 방법.
  11. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열에서 필터링 단어에 대응하는 대상 문자열 및 상기 필터링 단어 간의 유사도를 산출하는 단계; 및
    상기 산출된 유사도가 임계값을 초과하는 경우에 응답하여, 상기 대상 문자열을 비속어로 결정하는 단계
    를 포함하는 텍스트 필터링 방법.
  12. 삭제
  13. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열의 적어도 일부 자소 및 상기 필터링 단어에서 그에 대응하는 자소 간의 자소 유사도를 산출하는 단계;
    상기 자소 유사도에 기초하여 상기 조합 문자열 및 상기 필터링 단어 간의 유사도를 산출하는 단계; 및
    상기 유사도에 기초하여 상기 조합 문자열로부터 상기 필터링 단어를 검색하는 단계
    를 포함하는 텍스트 필터링 방법.
  14. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열로부터 필터링 단어의 음절 갯수에 기초하여 대상 문자열을 선택하는 단계; 및
    상기 대상 문자열과 상기 필터링 단어 간의 유사도를 산출하는 단계
    를 포함하는 텍스트 필터링 방법.
  15. 제1항에 있어서,
    상기 비속어를 검색하는 단계는,
    상기 조합 문자열로부터 복수의 대상 문자열을 순차적으로 선택하는 단계;
    상기 복수의 대상 문자열의 각각과 상기 필터링 단어 간의 유사도를 산출하는 단계; 및
    상기 복수의 대상 문자열 중 상기 유사도가 임계값을 초과하는 대상 문자열을 비속어로 결정하는 단계
    를 포함하는 텍스트 필터링 방법.
  16. 제1항에 있어서,
    상기 입력 문자열을 입력한 사용자 단말과 연관된 다른 사용자 단말로부터 상기 입력 문자열에 포함된 비속어 정보를 수신하는 단계; 및
    상기 수신된 비속어 정보에 대응하는 비속어가 상기 입력 문자열에서 필터링되지 않은 경우에 응답하여 필터링 목록을 업데이트하는 단계
    를 더 포함하는 텍스트 필터링 방법.
  17. 제1항에 있어서,
    상기 입력 문자열을 입력한 사용자 단말과 연관된 다른 사용자 단말로부터 상기 입력 문자열에 포함된 비속어 정보를 수신하는 단계; 및
    상기 수신된 비속어 정보에 대응하는 비속어의 각 문자에 대응하는 자소 및 상기 입력 문자열에서 상기 비속어에 대응하는 대상 문자열의 각 자소 간의 자소 유사도를 업데이트하는 단계
    를 더 포함하는 텍스트 필터링 방법.
  18. 하드웨어와 결합되어 제1항 내지 제11항 및 제13항 내지 제17항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  19. 텍스트 필터링 장치에 있어서,
    입력 문자열을 획득하고, 상기 입력 문자열로부터 변환 대상 문자가 검출되는 경우에 응답하여, 상기 검출된 변환 대상 문자를 자소로 변환하며, 상기 자소를 조합하여 상기 입력 문자열로부터 조합 문자열을 생성하고, 상기 조합 문자열로부터 비속어를 검색하는 처리부
    를 포함하고,
    상기 처리부는,
    상기 조합 문자열의 각 음절 및 필터링 단어의 각 음절 간의 음절 유사도를 산출하고, 상기 음절 유사도에 기초하여, 상기 조합 문자열로부터 상기 필터링 단어를 검색하는,
    텍스트 필터링 장치.
KR1020160126188A 2016-09-30 2016-09-30 텍스트 필터링 장치 및 방법 KR102618483B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160126188A KR102618483B1 (ko) 2016-09-30 2016-09-30 텍스트 필터링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160126188A KR102618483B1 (ko) 2016-09-30 2016-09-30 텍스트 필터링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180036074A KR20180036074A (ko) 2018-04-09
KR102618483B1 true KR102618483B1 (ko) 2023-12-27

Family

ID=61978057

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160126188A KR102618483B1 (ko) 2016-09-30 2016-09-30 텍스트 필터링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102618483B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102217248B1 (ko) * 2019-02-21 2021-02-18 주식회사 와이즈넛 텍스트 문서 요약을 위한 자질 추출 및 학습 방법
KR102236846B1 (ko) * 2019-04-09 2021-04-06 넷마블 주식회사 욕설 필터링 방법 및 장치
KR102244982B1 (ko) * 2019-12-31 2021-04-27 성균관대학교산학협력단 이미지 학습을 이용한 텍스트 필터링 방법 및 장치
KR102358553B1 (ko) * 2020-03-06 2022-02-03 아주대학교산학협력단 한글 자모간 유사성에 기반한 비속어 검출 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101110336B1 (ko) * 2009-05-29 2012-02-15 (주)엠더블유스토리 댓글에 대한 평판도 분석 방법
KR20100129032A (ko) * 2009-05-29 2010-12-08 (주)엠더블유스토리 한국어를 위한 비속어 필터링 방법
KR101075838B1 (ko) * 2009-08-24 2011-10-25 부산대학교 산학협력단 변형 비속어 필터링을 위한 비속어 필터링 시스템 및 방법
KR101645674B1 (ko) * 2014-11-04 2016-08-05 주식회사 케이티 자동완성 후보 단어 제공 방법 및 장치

Also Published As

Publication number Publication date
KR20180036074A (ko) 2018-04-09

Similar Documents

Publication Publication Date Title
CN108287858B (zh) 自然语言的语义提取方法及装置
KR102618483B1 (ko) 텍스트 필터링 장치 및 방법
CN111858843B (zh) 一种文本分类方法及装置
CN109753987B (zh) 文件识别方法和特征提取方法
CN111488740A (zh) 一种因果关系的判别方法、装置、电子设备及存储介质
CN110032734B (zh) 近义词扩展及生成对抗网络模型训练方法和装置
CN115081440B (zh) 文本中变种词的识别及提取原敏感词的方法、装置及设备
JP2018088101A (ja) 同義表現抽出装置、同義表現抽出方法、及び同義表現抽出プログラム
CN110610180A (zh) 错别字词识别集的生成方法、装置、设备及存储介质
CN115438650B (zh) 融合多源特征的合同文本纠错方法、系统、设备及介质
CN111832396A (zh) 文档布局的解析方法、装置、电子设备和存储介质
WO2021237227A1 (en) Method and system for multi-language text recognition model with autonomous language classification
CN115312034A (zh) 基于自动机和字典树处理语音信号的方法、装置和设备
CN110970030A (zh) 一种语音识别转换方法及系统
CN102550049A (zh) 通过动态学习提取规则来获取词表外的翻译
US9984065B2 (en) Optimizing generation of a regular expression
KR102476208B1 (ko) 한국어 명사 추출 토크나이저 기반의 워드클라우드 시스템
CN115455416A (zh) 一种恶意代码检测方法、装置、电子设备及存储介质
KR102599980B1 (ko) 텍스트 데이터 복호화를 위한 데이터 처리 방법 및 그 데이터 처리 장치
KR102236846B1 (ko) 욕설 필터링 방법 및 장치
KR102212994B1 (ko) 폰트 자동 생성 장치 및 방법
CN113378774A (zh) 手势识别方法、装置、设备、存储介质以及程序产品
JP2016153975A (ja) 情報処理装置、侵害検知装置、情報処理方法、およびプログラム
WO2022070422A1 (ja) 計算機システム及び文字認識方法
CN112765962B (zh) 一种文本纠错方法、装置及介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant