KR102252671B1 - 학습 기반 혐오 표현 댓글 필터링 장치 및 이의 동작 방법 - Google Patents
학습 기반 혐오 표현 댓글 필터링 장치 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR102252671B1 KR102252671B1 KR1020190069460A KR20190069460A KR102252671B1 KR 102252671 B1 KR102252671 B1 KR 102252671B1 KR 1020190069460 A KR1020190069460 A KR 1020190069460A KR 20190069460 A KR20190069460 A KR 20190069460A KR 102252671 B1 KR102252671 B1 KR 102252671B1
- Authority
- KR
- South Korea
- Prior art keywords
- hate
- expression
- comments
- dictionary
- words
- Prior art date
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims description 21
- 230000014509 gene expression Effects 0.000 claims abstract description 329
- 239000013598 vector Substances 0.000 claims abstract description 48
- 238000013145 classification model Methods 0.000 claims abstract description 37
- 238000002372 labelling Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 6
- 238000010276 construction Methods 0.000 description 9
- 238000012706 support-vector machine Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 2
- 238000013019 agitation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G06Q50/30—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
Abstract
혐오 표현 댓글 필터링 장치는, 혐오 표현 단어들을 저장하는 혐오 표현 사전, 단어 임베딩 모델을 이용하여, 수집한 댓글들에 포함된 혐오 표현 후보 단어들과 상기 혐오 표현 단어들 각각의 임베딩 벡터들을 생성하고, 벡터 간 유사도 판단 알고리즘을 이용하여 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출하고, 상기 유사 단어들 중 결정된 신규 혐오 표현 단어를 상기 혐오 표현 사전에 저장하는 사전 구축 장치, 상기 혐오 표현 사전을 기초로 혐오 표현 댓글과 비혐오 표현 댓글로 라벨링된 분류 학습용 댓글들을 이용하여, 혐오 표현 분류 모델이 입력 댓글을 혐오 표현 댓글 또는 비혐오 표현 댓글을 구별하도록 학습시키는 학습 장치, 그리고 판별 대상 댓글을 상기 혐오 표현 분류 모델로 입력하고, 상기 혐오 표현 분류 모델로부터 상기 판별 대상 댓글이 혐오 표현 댓글로 판별된 경우, 상기 판별 대상 댓글을 미리 설정된 텍스트로 치환되도록 설정하는 필터링기를 포함한다.
Description
본 발명은 혐오 댓글을 필터링하는 기술에 관한 것이다.
인터넷의 발달과 함께 수많은 콘텐츠가 인터넷 에 게시된다. 인터넷을 이용하는 사용자들은 단순히 콘텐츠를 소비하는 것에 그치지 않고, 댓글을 통해 해당 콘텐츠에 대한 적극적인 의견을 표시한다. 많은 사용자들이 접속하는 웹 페이지에 게시된 콘텐츠의 경우, 콘텐츠 하나에 대해 생성된 댓글만 해도 수백 개에서 수천 개에 이르기도 한다. 댓글을 통해 여론이나 의견 형성이 이루어지기도 할 뿐만 아니라, 콘텐츠 제공자는 댓글을 통해 사용자 의견을 피드백받는 주요한 수단으로써 활용한다.
그러나, 활발한 댓글 문화에서도 많은 부작용이 발생한다. 구체적으로, 일부 사용자들이 혐오 표현을 포함하는 댓글을 작성하는데, 혐오 댓글은 인터넷의 특성상 청소년을 비롯한 다수의 사용자들에게 노출되어 사이버 폭력을 야기한다.
혐오 표현을 포함하는 댓글을 차단하기 위한 방법들이 존재하나, 기존 방법들은 스팸성 댓글을 필터링하는데 집중되어 있다. 또한, 기존 방법들은 등록된 데이터베이스를 이용해 혐오 댓글을 필터링하기 때문에 데이터베이스에 등록되지 않는 새로운 혐오 표현을 필터링할 수 없는 한계가 있다.
해결하고자 하는 과제는 혐오 표현 댓글들을 수집하고, 단어 임베딩을 통해 혐오 표현 댓글들로부터 알고 있는 혐오 표현 단어(비속어)와 유사한 단어들을 추출하여 혐오 표현 사전을 지속적으로 확장하는 장치 및 방법을 제공하는 것이다.
또한, 해결하고자 하는 과제는 혐오 표현 단어를 포함하는 댓글을 혐오 댓글로 분류하는 분류 모델을 학습시키고, 학습된 분류 모델을 기초로 입력 댓글이 혐오 표현 댓글인지 판별하며, 입력 댓글이 혐오 표현 댓글인 경우, 입력 댓글을 필터링하는 장치 및 방법을 제공하는 것이다.
한 실시예에 따른 혐오 표현 댓글 필터링 장치로서, 혐오 표현 단어들을 저장하는 혐오 표현 사전, 단어 임베딩 모델을 이용하여, 수집한 댓글들에 포함된 혐오 표현 후보 단어들과 상기 혐오 표현 단어들 각각의 임베딩 벡터들을 생성하고, 벡터 간 유사도 판단 알고리즘을 이용하여 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출하고, 상기 유사 단어들 중 결정된 신규 혐오 표현 단어를 상기 혐오 표현 사전에 저장하는 사전 구축 장치, 상기 혐오 표현 사전을 기초로 혐오 표현 댓글과 비혐오 표현 댓글로 라벨링된 분류 학습용 댓글들을 이용하여, 혐오 표현 분류 모델이 입력 댓글을 혐오 표현 댓글 또는 비혐오 표현 댓글을 구별하도록 학습시키는 학습 장치, 그리고 판별 대상 댓글을 상기 혐오 표현 분류 모델로 입력하고, 상기 혐오 표현 분류 모델로부터 상기 판별 대상 댓글이 혐오 표현 댓글로 판별된 경우, 상기 판별 대상 댓글을 미리 설정된 텍스트로 치환되도록 설정하는 필터링기를 포함한다.
상기 사전 구축 장치는 상기 혐오 표현 사전에 저장된 단어들을 포함하는 댓글들을 혐오 표현 댓글들로 분류하고, 각 혐오 표현 댓글을 구성하는 형태소들을 상기 단어 임베딩 모델로 임베딩하여 각 혐오 표현 후보 단어의 임베딩 벡터를 생성할 수 있다.
상기 사전 구축 장치는 상기 유사 단어들 중 상기 혐오 표현 댓글들에 일정 빈도 이상 등장하는 유사 단어를 상기 신규 혐오 표현 단어로 결정할 수 있다.
상기 사전 구축 장치는 상기 혐오 표현 사전에 저장된 각 혐오 표현 단어의 임베딩 벡터와 각 혐오 표현 후보 단어의 임베딩 벡터가 형성하는 코사인 각도를 유사도로 계산하고, 두 벡터 간의 유사도를 기초로 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출할 수 있다.
상기 학습 장치는 분류 학습용 댓글들을 입력받고, 상기 혐오 표현 사전에 포함된 적어도 하나의 단어를 포함하는 댓글을 혐오 표현으로 라벨링하고, 상기 혐오 표현 단어들을 포함하지 않은 댓글을 비혐오 표현으로 라벨링할 수 있다.
상기 혐오 표현 사전은 혐오 표현 단어로 정의된 비속어들을 포함하고, 상기 비속어들로부터 확장된신규 혐오 표현 단어들이 업데이트될 수 있다.
한 실시예에 따른 혐오 표현 댓글 필터링 장치의 동작 방법으로서, 혐오 표현 사전에 저장된 적어도 하나의 혐오 표현 단어를 포함하는 혐오 표현 댓글들을 입력받는 단계, 단어 임베딩 모델을 이용하여, 상기 혐오 표현 댓글들에 포함된 혐오 표현 후보 단어들과 상기 혐오 표현 사전에 저장된 혐오 표현 단어들 각각의 임베딩 벡터들을 생성하는 단계, 벡터 간 유사도 판단 알고리즘을 이용하여 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출하는 단계, 그리고 상기 유사 단어들 중 결정된 신규 혐오 표현 단어를 상기 혐오 표현 사전에 저장하는 단계를 포함한다.
상기 동작 방법은 분류 학습용 댓글들을 입력받고, 상기 혐오 표현 사전에 포함된 적어도 하나의 단어를 포함하는 댓글을 혐오 표현으로 라벨링하고, 상기 혐오 표현 단어들을 포함하지 않은 댓글을 비혐오 표현으로 라벨링하는 단계, 그리고 혐오 표현 댓글과 비혐오 표현 댓글로 라벨링된 학습 데이터를 기초로, 혐오 표현 분류 모델이 입력된 텍스트를 혐오 표현 댓글 또는 비혐오 표현 댓글을 구별하도록 학습시키는 단계를 더 포함할 수 있다.
상기 동작 방법은 판별 대상 댓글을 상기 혐오 표현 분류 모델로 입력하는 단계, 그리고 상기 혐오 표현 분류 모델로부터 상기 판별 대상 댓글이 혐오 표현 댓글로 판별된 경우, 상기 판별 대상 댓글을 미리 설정된 텍스트로 치환되도록 설정하는 단계를 더 포함할 수 있다.
상기 임베딩 벡터들을 생성하는 단계는 각 혐오 표현 댓글을 구성하는 형태소들을 상기 단어 임베딩 모델로 임베딩하여 각 혐오 표현 후보 단어의 임베딩 벡터를 생성할 수 있다.
상기 유사 단어들을 추출하는 단계는 상기 혐오 표현 사전에 저장된 각 혐오 표현 단어의 임베딩 벡터와 각 혐오 표현 후보 단어의 임베딩 벡터가 형성하는 코사인 각도를 유사도로 계산하고, 두 벡터 간의 유사도를 기초로 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출할 수 있다.
상기 혐오 표현 사전에 저장하는 단계는 상기 유사 단어들 중 상기 혐오 표현 댓글들에 일정 빈도 이상 등장하는 유사 단어를 상기 신규 혐오 표현 단어로 결정할 수 있다.
실시예에 따르면, 혐오 표현을 포함하는 악의적인 댓글을 차단할 수 있어 건전한 사이버 생태계를 구현할 수 있다.
실시예에 따르면, 혐오 표현이 변형되거나 새롭게 생성되더라도, 혐오 표현을 포함하는 댓글을 효율적으로 탐지할 수 있다.
도 1은 한 실시예에 따른 혐오 표현 댓글 필터링 장치를 설명하는 도면이다.
도 2는 한 실시예에 따른 혐오 표현 분류 모델의 예시이다.
도 3은 한 실시예에 따른 혐오 표현 사전 구축 방법의 흐름도이다.
도 4는 한 실시예에 따른 혐오 표현 분류 모델 학습 방법의 흐름도이다.
도 5는 한 실시예에 따른 혐오 표현 필터링 방법의 흐름도이다.
도 6은 필터링된 댓글 표시의 예시이다.
도 2는 한 실시예에 따른 혐오 표현 분류 모델의 예시이다.
도 3은 한 실시예에 따른 혐오 표현 사전 구축 방법의 흐름도이다.
도 4는 한 실시예에 따른 혐오 표현 분류 모델 학습 방법의 흐름도이다.
도 5는 한 실시예에 따른 혐오 표현 필터링 방법의 흐름도이다.
도 6은 필터링된 댓글 표시의 예시이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
혐오 표현은 특정 집단에 대한 편견을 기반으로 이루어지는 의도적인 폄하, 위협, 선동, 조롱 등을 담을 표현을 의미한다.
도 1은 한 실시예에 따른 혐오 표현 댓글 필터링 장치를 설명하는 도면이고, 도 2는 한 실시예에 따른 혐오 표현 분류 모델의 예시이다.
도 1을 참고하면, 혐오 표현 댓글 필터링 장치(1)는 온라인에 게시된 각종 댓글들을 획득하는 댓글 수집기(100), 혐오 표현 사전(10)을 구축하는 사전 구축 장치(200), 혐오 표현 분류 모델(20)을 학습시키는 학습 장치(300), 학습된 혐오 표현 분류 모델(20)을 기초로 혐오 표현 댓글을 판별하고 필터링하는 필터링기(400)를 포함한다.
댓글 수집기(100)는 온라인 댓글들을 수집한다.
사전 구축 장치(200)는 혐오 표현 사전(10)을 구축하기 위한 장치로서, 단어 임베딩 기반으로 혐오 표현 사전을 구축한다.
혐오 표현 사전(10)은 사전에 정의된 비속어들이 포함된 비속어 사전(11), 그리고 비속어 사전(11)으로부터 확장된 혐오 표현 단어들을 포함하는 확장 혐오 사전(13)을 포함할 수 있다. 혐오 표현 사전(10)에 포함된 단어를 혐오 표현 단어라고 부르고, 혐오 표현 단어에 비속어가 포함된다. 비속어 사전(11)은 예를 들면, "한국어 속어"에 해당하는 단어들을 포함할 수 있다. 확장 혐오 사전(13)은 사전 구축 장치(200)에 의해 발견된 새로운 혐오 표현 단어들이 저장되고, 지속적으로 업데이트된다. 이렇게, 혐오 표현 사전(10)은 비속어 사전(11) 및 확장 혐오 사전(13)을 포함하고, 초기에는 비속어 사전(11)으로부터 확장 혐오 사전(13)을 생성하고, 이후에는 비속어 사전(11)과 확장 혐오 사전(13)으로부터 확장 혐오 사전(13)을 업데이트한다.
댓글 수집기(100)는 다양한 목적으로 온라인 댓글들을 수집한다. 댓글 수집기(100)는 사전 구축 장치(200)를 위해 혐오 표현 단어를 포함하는 혐오 표현 댓글들을 수집할 수 있다. 댓글 수집기(100)는 학습 장치(300)를 위해 혐오 표현 분류 모델(20)의 학습에 필요한 댓글들을 수집할 수 있다. 또한, 댓글 수집기(100)는 혐오 표현 댓글인지 판단할 댓글들을 필터링기(400)로 전달할 수 있다.
댓글 수집기(100)가 혐오 표현 사전(10)을 참조하여, 적어도 하나의 혐오 표현 단어를 포함하는 댓글을 혐오 표현 댓글로 수집할 수 있다. 또는 댓글 수집기(100)는 부정적 표현을 포함하는 댓글을 넓은 의미의 혐오 표현 댓글로 수집할 수 있다. 댓글 수집기(100)는 확장 혐오 사전(13)이 구축된 경우, 비속어 사전(11) 및 확장 혐오 사전(13)에 포함된 단어를 혐오 표현 단어로 이용할 수 있으나, 확장 혐오 사전(13) 구축 전이라면, 비속어 사전(11)에 포함된 비속어들을 포함하는 댓글들을 수집할 수 있다. 한편, 댓글 수집기(100)가 혐오 표현 댓글을 구분하여 수집할 필요 없이, 사전 구축 장치(200)가 댓글 수집기(100)에서 수집된 댓글들 중에서 적어도 하나의 혐오 표현 단어를 포함하는 혐오 표현 댓글을 분류하여 사용할 수 있다.
사전 구축 장치(200)는 혐오 표현 댓글들에 포함된 단어들 중에서 혐오 표현 사전(10)에 저장된 단어들(기준 단어)과 유사한 단어들을 추출한다. 이를 위해, 사전 구축 장치(200)는 각 단어의 임베딩 벡터를 기초로 유사도를 비교할 수 있다. 사전 구축 장치(200)는 추출한 각 유사 단어가 혐오 표현 댓글들에 등장하는 빈도를 계산하고, 일정 빈도 이상 등장하는 유사 단어를 혐오 표현 단어라고 결정한다. 결정된 혐오 표현 단어는 혐오 표현 사전(10)에 등록된다.
먼저, 사전 구축 장치(200)는 혐오 표현 사전(10) 또는 비속어 사전(11)에 저장된 복수의 혐오 표현 단어들의 임베딩 벡터들을 생성한다.
사전 구축 장치(200)는 각 혐오 표현 댓글을 단어 임베딩한다. 이때, 사전 구축 장치(200)는 각 혐오 표현 댓글을 형태소 분석한 후, 댓글을 구성하는 형태소들을 임베딩하여 혐오 표현 후보 단어의 임베딩 벡터를 생성한다. 즉, 사전 구축 장치(200)는 사전 확장 시 표제어(원형)를 정확하게 찾을 수 있도록, 혐오 표현 댓글을 형태소 단위로 구분한다. 특히, 어미와 조사의 사용에 의해 단어의 형태 변형이 심한 한국어는 댓글을 형태소 단위로 구분하는 절차가 필요하다. 단어 임베딩 벡터는 해당 단어에 대한 함축적인 의미를 나타내는 고정 길이의 k차원의 벡터로서, Word2vec 모델 또는 Glove 모델 등으로 벡터화된다. 단어 임베딩 모델은 단어에 대한 함축적인 의미를 최대한 포함하는 벡터를 생성하도록 학습된다.
사전 구축 장치(200)는 코사인 유사도 알고리즘(cosine similarity algorithm)과 같은 벡터 간 유사도를 판단 알고리즘을 사용하여, 혐오 표현 댓글로부터 추출한 혐오 표현 후보 단어들 중에서, 알고 있는 복수의 혐오 표현 단어들과 유사한 후보 단어들을 추출한다. 코사인 유사도는 두 벡터 간의 코사인 각도를 두 벡터의 유사도로 이용하는 것으로서, 두 벡터의 방향이 같으면 1의 값을 가지고, 두 벡터의 방향이 90°의 각을 이루면 0, 두 벡터의 방향이 반대이면 -1이다.
혐오 표현 단어와의 유사도 점수가 임계값 이상인 혐오 표현 후보 단어들은 아직 혐오 표현 사전(10)에 등록된 표현은 아니지만, 혐오 표현 단어로 분류될 가능성이 높다. 따라서, 사전 구축 장치(200)는 혐오 표현 댓글로부터 혐오 표현 후보 단어들은 추출함으로써, 혐오 표현 단어를 확장할 수 있다.
사전 구축 장치(200)는 혐오 표현 단어와 유사한 단어를 신규 혐오 표현 단어라고 결정하고, 혐오 표현 사전(10)에 저장할 수 있다. 또는, 사전 구축 장치(200)는 혐오 표현 단어와 유사한 단어가 혐오 표현 댓글들에 등장하는 빈도를 계산하고, 일정 빈도 이상 등장하는 유사 단어를 신규 혐오 표현 단어라고 결정할 수 있다. 결정된 신규 혐오 표현 단어는 혐오 표현 사전(10)에 등록된다.
이후, 사전 구축 장치(200)는 혐오 표현 단어가 업데이트된 혐오 표현 사전(10)를 기초로 새로운 혐오 표현 단어를 포함하는 혐오 표현 댓글들을 수집하고, 이를 기초로 다시 유사한 혐오 표현 단어를 추출하는 동작을 반복할 수 있다. 이를 통해 댓글에 포함된 새로운 혐오 표현 단어들이 지속적으로 업데이트될 수 있다.
학습 장치(300)는 혐오 표현 사전(10)을 기초로 혐오 표현 분류 모델(20)이 입력 댓글을 혐오(HATE) 표현 댓글과 비혐오(NON-HATE) 표현 댓글로 분류하도록 학습시킨다. 학습 장치(300)는 혐오 표현과 비혐오 표현으로 라벨링된 분류 학습용 댓글들을 입력받고, 혐오 표현 분류 모델(20)이 분류 학습용 댓글들을 라벨링에 따라 분류하도록 학습시킨다. 이때, 분류 학습용 댓글들은 사용자에 의해 수동으로 혐오 표현과 비혐오 표현으로 라벨링될 수 있다. 또는, 학습 장치(300)는 혐오 표현 사전(10)을 참조하여, 분류 학습용 댓글들 중에서, 혐오 표현 사전(10)에 포함된 적어도 하나의 혐오 표현 단어를 포함하는 댓글을 혐오 표현으로 라벨링하고, 그렇지 않은 댓글을 비혐오 표현으로 라벨링할 수 있다.
혐오 표현 분류 모델(20)은 기계학습 기반의 다양한 분류 모델이 사용될 수 있다. 예를 들면, 혐오 표현 분류 모델(20)은 도 2와 같은 SVM(Support vector machine)일 수 있다. SVM은 데이터 집합이 주어졌을 때, 주어진 데이터 집합을 기초로 새로운 데이터가 어느 카테고리에 속할지 판단하는 분류 모델이다. SVM은 데이터가 사상된 공간에서 경계로 표현되는데, 가장 큰 폭(margin)을 가지는 경계(예를 들면, H2)를 찾는다. 학습 장치(300)는 SVM 기반의 혐오 표현 분류 모델(20)을 통해 혐오 표현 댓글과 비혐오 표현 댓글을 가장 잘 구별할 수 있는 벡터 평면을 학습시킨다.
이때, 학습 장치(300)는 혐오 표현 또는 비혐오 표현으로 라벨링된 각 분류 학습용 댓글을 벡터로 변환한다. 학습 장치(300)는 BOW(bag of words)를 활용하여 댓글 텍스트를 벡터화할 수 있다.
필터링기(400)는 학습된 혐오 표현 분류 모델(20)을 기초로 입력된 댓글이 혐오 표현 댓글인지 판별한다.
필터링기(400)는 입력 댓글이 혐오 표현 댓글인 경우, 입력 댓글을 미리 설정된 텍스트로 치환하여 출력한다. 필터링기(400)는 입력 댓글이 비혐오 표현 댓글인 경우, 입력 댓글을 그대로 출력한다.
예를 들면, 필터링기(400)는 입력 댓글이 혐오 표현 댓글로 판별된 경우, 입력 댓글 대신 미리 설정된 텍스트인 "혐오 발언 분류를 통해 블라인드 처리 되었습니다"로 치환하여 출력할 수 있다.
이와 같이 본 발명은 혐오 표현을 포함하는 악의적인 댓글을 차단할 수 있을 뿐만 아니라, 혐오 표현이 변형되거나 새롭게 생성되더라도, 혐오 표현을 포함하는 댓글을 효율적으로 탐지할 수 있다.
도 3은 한 실시예에 따른 혐오 표현 사전 구축 방법의 흐름도이다.
도 3을 참고하면, 사전 구축 장치(200)는 혐오 표현 댓글들을 수집한다(S110). 사전 구축 장치(200)는 혐오 표현 사전(10)에 저장된 혐오 표현 단어를 포함하는 댓글들을 혐오 표현 댓글로 분류할 수 있다. 또는 사전 구축 장치(200)는 지정된 기준(예를 들면, 부정적 표현을 포함)을 기초로 혐오 표현 댓글을 추출할 수 있다.
사전 구축 장치(200)는 각 혐오 표현 댓글을 형태소 단위로 구분하고, 각 혐오 표현 댓글을 구성하는 형태소들을 단어 임베딩 모델로 임베딩하여 혐오 표현 후보 단어의 임베딩 벡터를 생성한다(S120). 각 혐오 표현 댓글을 구성하는 형태소들 중 적어도 일부가 혐오 표현 후보 단어가 된다. 사전 구축 장치(200)는 단어에 대한 함축적인 의미를 최대한 포함하는 벡터를 생성하도록 단어 임베딩 모델을 학습시킨다. 단어 임베딩 모델은 예를 들면, Word2vec 모델 또는 Glove 모델 등일 수 있다.
사전 구축 장치(200)는 단어 임베딩 모델을 이용하여 혐오 표현 사전(10)에 저장된 복수의 혐오 표현 단어들의 임베딩 벡터들을 생성한다(S130).
사전 구축 장치(200)는 벡터 간 유사도 판단 알고리즘을 사용하여, 혐오 표현 댓글들로부터 추출된 혐오 표현 후보 단어들 중에서, 혐오 표현 사전(10)에 저장된 복수의 혐오 표현 단어들과 유사한 유사 단어들을 추출한다(S140). 사전 구축 장치(200)는 코사인 유사도 알고리즘(cosine similarity algorithm)과 같은 벡터 간 유사도 판단 알고리즘을 사용할 수 있다.
사전 구축 장치(200)는 혐오 표현 단어의 유사 단어를 신규 혐오 표현 단어로 결정하거나, 혐오 표현 댓글들에 일정 빈도 이상 등장하는 유사 단어를 신규 혐오 표현 단어로 결정할 수 있다(S150).
사전 구축 장치(200)는 신규 혐오 표현 단어를 혐오 표현 사전(10)에 저장한다(S160). 신규 혐오 표현 단어는 혐오 표현 사전(10)의 확장 혐오 사전(13)에 추가될 수 있다.
이처럼, 사전 구축 장치(200)는 업데이트된 혐오 표현 사전(10)에 유사한 혐오 표현 단어를 추출하는 동작을 반복함으로써, 지속적으로 생성되는 댓글에 포함된 새로운 혐오 표현 단어들을 지속적으로 업데이트할 수 있다.
도 4는 한 실시예에 따른 혐오 표현 분류 모델 학습 방법의 흐름도이다.
도 4를 참고하면, 학습 장치(300)는 분류 학습용 댓글들을 입력받는다(S210).
학습 장치(300)는 혐오 표현 사전(10)에 포함된 적어도 하나의 혐오 표현 단어를 포함하는 댓글을 혐오 표현으로 라벨링하고, 그렇지 않은 댓글을 비혐오 표현으로 라벨링하여 학습 데이터를 생성한다(S220).
학습 장치(300)는 혐오 표현 댓글과 비혐오 표현 댓글로 라벨링된 댓글들을 기초로 혐오 표현 분류 모델이 입력된 텍스트를 혐오 표현 댓글 또는 비혐오 표현 댓글로 구별하도록 학습시킨다(S230). 혐오 표현 분류 모델은 도 2와 같은 SVM(Support vector machine)일 수 있다. 이때, 학습 장치(300)는 혐오 표현 또는 비혐오 표현으로 라벨링된 각 분류 학습용 댓글을 벡터로 변환한 후, 혐오 표현 분류 모델에 입력한다.
도 5는 한 실시예에 따른 혐오 표현 필터링 방법의 흐름도이고, 도 6은 필터링된 댓글 표시의 예시이다.
도 5를 참고하면, 필터링기(400)는 판별 대상 댓글을 입력받는다(S310).
필터링기(400)는 혐오 표현 댓글과 비혐오 표현 댓글을 구별하도록 학습된 혐오 표현 분류 모델(20)로 판별 대상 댓글을 입력하고, 혐오 표현 분류 모델(20)로부터 판별 결과를 획득한다(S320).
필터링기(400)는 판별 대상 댓글이 혐오 표현 댓글로 판별된 경우, 판별 대상 댓글이 미리 설정된 텍스트로 치환되도록 설정한다(S330). 필터링기(400)는 도 6과 같이, 실제 입력된 입력 댓글 대신 미리 설정된 텍스트인 "혐오 발언 분류를 통해 블라인드 처리 되었습니다"로 표시되도록 해당 웹페이지 제공 서버와 연동할 수 있다.
이와 같이 실시예에 따르면, 혐오 표현을 포함하는 악의적인 댓글을 차단할 수 있어 건전한 사이버 생태계를 구현할 수 있다. 또한 실시예에 따르면, 혐오 표현이 변형되거나 새롭게 생성되더라도, 혐오 표현을 포함하는 댓글을 효율적으로 탐지할 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (12)
- 혐오 표현 댓글 필터링 장치로서,
온라인에 게시된 댓글들을 수집하는 댓글 수집기,
혐오 표현 단어들을 저장하는 혐오 표현 사전,
상기 혐오 표현 사전을 기초로 혐오 표현 댓글과 비혐오 표현 댓글로 라벨링된 분류 학습용 댓글들을 이용하여, 혐오 표현 분류 모델이 입력 댓글을 혐오 표현 댓글 또는 비혐오 표현 댓글을 구별하도록 학습시키는 학습 장치, 그리고
상기 댓글 수집기에서 수집된 판별 대상 댓글을 상기 혐오 표현 분류 모델로 입력하고, 상기 혐오 표현 분류 모델로부터 상기 판별 대상 댓글이 혐오 표현 댓글로 판별된 경우, 상기 판별 대상 댓글을 미리 설정된 텍스트로 치환되도록 설정하는 필터링기를 포함하며,
상기 혐오 표현 사전은, 상기 댓글 수집기에서 수집된 댓글들로부터 사전 구축 장치에 의해 생성된 신규 혐오 표현 단어들을 포함하고,
상기 사전 구축 장치는
1) 단어 임베딩 모델을 이용하여, 수집된 혐오 표현 댓글들에 포함된 혐오 표현 후보 단어들과 상기 혐오 표현 사전에 저장된 혐오 표현 단어들 각각의 임베딩 벡터들을 생성하고, 2) 벡터 간 유사도 판단 알고리즘을 이용하여 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 혐오 표현 후보 단어들을 추출하고, 3) 상기 유사한 혐오 표현 후보 단어들 중, 혐오 표현 댓글들에서 일정 빈도 이상 등장하는 단어를 상기 신규 혐오 표현 단어로 결정하고, 4) 상기 신규 혐오 표현 단어를 상기 혐오 표현 사전에 추가하는, 혐오 표현 댓글 필터링 장치. - 제1항에서,
상기 사전 구축 장치는
상기 혐오 표현 사전에 저장된 단어들을 포함하는 댓글들을 혐오 표현 댓글들로 분류하고, 각 혐오 표현 댓글을 구성하는 형태소들을 상기 단어 임베딩 모델로 임베딩하여 각 혐오 표현 후보 단어의 임베딩 벡터를 생성하는, 혐오 표현 댓글 필터링 장치. - 삭제
- 제1항에서,
상기 사전 구축 장치는
상기 혐오 표현 사전에 저장된 각 혐오 표현 단어의 임베딩 벡터와 각 혐오 표현 후보 단어의 임베딩 벡터가 형성하는 코사인 각도를 유사도로 계산하고, 두 벡터 간의 유사도를 기초로 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출하는, 혐오 표현 댓글 필터링 장치. - 제1항에서,
상기 학습 장치는
분류 학습용 댓글들을 입력받고, 상기 혐오 표현 사전에 포함된 적어도 하나의 단어를 포함하는 댓글을 혐오 표현으로 라벨링하고, 상기 혐오 표현 단어들을 포함하지 않은 댓글을 비혐오 표현으로 라벨링하는, 혐오 표현 댓글 필터링 장치. - 제1항에서,
상기 혐오 표현 사전은
혐오 표현 단어로 정의된 비속어들을 포함하고, 상기 비속어들로부터 확장된신규 혐오 표현 단어들이 업데이트되는, 혐오 표현 댓글 필터링 장치. - 혐오 표현 댓글 필터링 장치의 동작 방법으로서,
혐오 표현 단어들을 저장하는 혐오 표현 사전을 관리하는 단계,
분류 학습용 댓글들을 입력받고, 상기 혐오 표현 사전에 포함된 적어도 하나의 단어를 포함하는 댓글을 혐오 표현으로 라벨링하고, 상기 혐오 표현 단어들을 포함하지 않은 댓글을 비혐오 표현으로 라벨링하는 단계,
혐오 표현 댓글과 비혐오 표현 댓글로 라벨링된 학습 데이터를 기초로, 혐오 표현 분류 모델이 입력된 텍스트를 혐오 표현 댓글 또는 비혐오 표현 댓글을 구별하도록 학습시키는 단계,
판별 대상 댓글을 상기 혐오 표현 분류 모델로 입력하는 단계, 그리고
상기 혐오 표현 분류 모델로부터 상기 판별 대상 댓글이 혐오 표현 댓글로 판별된 경우, 상기 판별 대상 댓글을 미리 설정된 텍스트로 치환되도록 설정하는 단계를 포함하고,
상기 혐오 표현 사전을 관리하는 단계는
단어 임베딩 모델을 이용하여, 수집된 혐오 표현 댓글들에 포함된 혐오 표현 후보 단어들과 상기 혐오 표현 사전에 저장된 혐오 표현 단어들 각각의 임베딩 벡터들을 생성하는 단계,
벡터 간 유사도 판단 알고리즘을 이용하여 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 혐오 표현 후보 단어들을 추출하는 단계,
상기 유사한 혐오 표현 후보 단어들 중, 상기 혐오 표현 댓글들에서 일정 빈도 이상 등장하는 단어를 신규 혐오 표현 단어로 결정하는 단계, 그리고
상기 신규 혐오 표현 단어를 상기 혐오 표현 사전에 추가하는 단계
를 포함하는 동작 방법. - 삭제
- 삭제
- 제7항에서,
상기 임베딩 벡터들을 생성하는 단계는
각 혐오 표현 댓글을 구성하는 형태소들을 상기 단어 임베딩 모델로 임베딩하여 각 혐오 표현 후보 단어의 임베딩 벡터를 생성하는, 동작 방법. - 제7항에서,
상기 혐오 표현 후보 단어들을 추출하는 단계는
상기 혐오 표현 사전에 저장된 각 혐오 표현 단어의 임베딩 벡터와 각 혐오 표현 후보 단어의 임베딩 벡터가 형성하는 코사인 각도를 유사도로 계산하고, 두 벡터 간의 유사도를 기초로 상기 혐오 표현 후보 단어들 중에서 상기 혐오 표현 사전에 저장된 단어들과 유사한 유사 단어들을 추출하는, 동작 방법. - 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180133309 | 2018-11-02 | ||
KR20180133309 | 2018-11-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200050845A KR20200050845A (ko) | 2020-05-12 |
KR102252671B1 true KR102252671B1 (ko) | 2021-05-17 |
Family
ID=70679305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190069460A KR102252671B1 (ko) | 2018-11-02 | 2019-06-12 | 학습 기반 혐오 표현 댓글 필터링 장치 및 이의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102252671B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230032554A (ko) | 2021-08-31 | 2023-03-07 | 숭실대학교산학협력단 | 한국어 유해 텍스트를 분류하기 위한 필터링 시스템 및 방법 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102564817B1 (ko) * | 2020-06-26 | 2023-08-07 | 서강대학교 산학협력단 | 자기 조절형 댓글 시각화 방법 및 그 장치 |
KR102427719B1 (ko) * | 2020-12-03 | 2022-08-03 | 주식회사 큐티티 | 댓글 기반의 왜곡 행동 억제시스템 |
KR102682790B1 (ko) * | 2021-04-16 | 2024-07-12 | 엔에이치엔 주식회사 | 문제 데이터를 생성하는 컴퓨터 장치 및 방법 |
KR102410582B1 (ko) * | 2021-10-29 | 2022-06-22 | 주식회사 튜닙 | 유해어에 대한 학습 데이터를 증강하는 장치, 방법 및 컴퓨터 프로그램 |
KR102659389B1 (ko) * | 2021-11-29 | 2024-04-23 | 한국과학기술원 | 신뢰도와 언어폭력 간 의존성을 이용한 언어폭력 수정 및 텍스트 신뢰도 증강 시스템 및 그 방법 |
KR102618060B1 (ko) * | 2023-03-21 | 2023-12-27 | (주)노웨어소프트 | 인공지능 알고리즘 기반의 비속어 필터링 장치 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101713558B1 (ko) * | 2015-10-30 | 2017-03-08 | 조선대학교산학협력단 | 소셜 네트워크 서비스 상의 사용자 게시글 감정 분류 방법 |
KR101851788B1 (ko) * | 2017-06-23 | 2018-04-24 | 주식회사 마인드셋 | 텍스트 감성 분석의 감정사전 업데이트 장치 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100613520B1 (ko) * | 2004-11-23 | 2006-08-17 | 엘지전자 주식회사 | 비속어 변환 기능이 구비된 이동통신 단말기 및 그 동작방법 |
KR101075838B1 (ko) * | 2009-08-24 | 2011-10-25 | 부산대학교 산학협력단 | 변형 비속어 필터링을 위한 비속어 필터링 시스템 및 방법 |
KR20170067558A (ko) * | 2015-12-08 | 2017-06-16 | 숭실대학교산학협력단 | Svm을 이용한 인터넷 악성댓글 탐지 기법 |
-
2019
- 2019-06-12 KR KR1020190069460A patent/KR102252671B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101713558B1 (ko) * | 2015-10-30 | 2017-03-08 | 조선대학교산학협력단 | 소셜 네트워크 서비스 상의 사용자 게시글 감정 분류 방법 |
KR101851788B1 (ko) * | 2017-06-23 | 2018-04-24 | 주식회사 마인드셋 | 텍스트 감성 분석의 감정사전 업데이트 장치 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230032554A (ko) | 2021-08-31 | 2023-03-07 | 숭실대학교산학협력단 | 한국어 유해 텍스트를 분류하기 위한 필터링 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20200050845A (ko) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102252671B1 (ko) | 학습 기반 혐오 표현 댓글 필터링 장치 및 이의 동작 방법 | |
CN112035669B (zh) | 基于传播异质图建模的社交媒体多模态谣言检测方法 | |
CN103336766B (zh) | 短文本垃圾识别以及建模方法和装置 | |
CN106294350B (zh) | 一种文本聚合方法及装置 | |
Nirkhi et al. | Comparative study of authorship identification techniques for cyber forensics analysis | |
US9098741B1 (en) | Discriminitive learning for object detection | |
CN111460083A (zh) | 文档标题树的构建方法、装置、电子设备及存储介质 | |
CN106294783A (zh) | 一种视频推荐方法及装置 | |
CN107301163B (zh) | 包含公式的文本语义解析方法及装置 | |
CN108305180B (zh) | 一种好友推荐方法及装置 | |
CN106909669B (zh) | 一种推广信息的检测方法及装置 | |
US20240086452A1 (en) | Tracking concepts within content in content management systems and adaptive learning systems | |
CN112434164A (zh) | 一种兼顾话题发现和情感分析的网络舆情分析方法及系统 | |
CN111026866B (zh) | 一种面向领域的文本信息抽取聚类方法、设备和存储介质 | |
Hernández-Castañeda et al. | Author verification using a semantic space model | |
CN113962199B (zh) | 文本识别方法、装置、设备、存储介质及程序产品 | |
JP6563350B2 (ja) | データ分類装置、データ分類方法、及びプログラム | |
Dehghani et al. | Sentiment analysis of Persian political tweets using ParsBERT embedding model with convolutional neural network | |
CN114491062A (zh) | 一种融合知识图谱和主题模型的短文本分类方法 | |
CN111737982B (zh) | 一种基于深度学习的汉语文本错别字检测方法 | |
Wachsmuth et al. | Back to the roots of genres: Text classification by language function | |
CN112818681A (zh) | 文本情感分析方法、系统及电子设备 | |
CN110929506A (zh) | 一种垃圾信息检测方法、装置、设备及可读存储介质 | |
CN111488400A (zh) | 数据分类方法、装置和计算机可读存储介质 | |
JP2017078919A (ja) | 単語拡張装置、分類装置、機械学習装置、方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |