Acdong
Learn by doing
Acdong
전체 방문자
오늘
어제
  • 분류 전체보기
    • Economy
      • Saving Money
    • Self-improvement
    • Thoughts
    • Machine learning
      • Deep Learning
      • Chatbot
      • NLP
    • MLops
      • AWS
      • Container
      • Serving
    • Computer Vision
    • Data Science
      • ADsP
      • R
    • Project
    • Python
      • Data Structure & Algorithm
    • C,C++
    • API
      • ElasticSearch
    • Error Note
    • Network
    • RDBMS
      • SQL

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • [GitHub]

인기 글

태그

  • SentenceTransformer
  • R그래프
  • 회귀계수
  • Python
  • 포인터
  • pandas
  • 기계학습
  • 이미지 전처리
  • plot()
  • 데이터 전처리
  • R시각화
  • sbert
  • Numpy
  • 머신러닝
  • nlp
  • 존댓말 반말 분류
  • R
  • c포인터
  • 다중공선성
  • 어텐션

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Acdong

Learn by doing

[annotation]. 텍스트 데이터 라벨링 꿀팁(1)
Machine learning/NLP

[annotation]. 텍스트 데이터 라벨링 꿀팁(1)

2021. 11. 12. 11:27
728x90

어노테이션은 머신러닝개발자에게는 숙명과도 같은 일이다.

가장 단순하지만 가장 중요한 작업

하지만 너무나도 지루한 건 사실이지만 정신줄을 놓으면 안된다.

 

그래서 텍스트 데이터를 라벨링할때

항상 효과적인 방법을 머리속으로 생각했다. (지루하니까 최대한 정확하고 빨리하는 방법 )

 

나는 공격적인 단어를 필터링하는 검수작업을 맡게 되었는데.

먼저 키위드를 수집했다.

 


키워드 수집

키워드는 기존 딥러닝 모델의 예측 결과로 나온 것들 중 경계선에 있는 데이터들을 통해 수집했다.

이걸 Active Learning 이라고 한다.

 

active Learning

위에서 경계선이 있는 데이터들은 즉 , 모델이 해깔려하는 데이터를 사용했다는 것이다.

경계선 라벨링 -> 데이터 추가  -> 학습 -> 예측 -> 경계선 라벨링 

 

여기서 경계선 라벨링은 하지않고 경계선을 통해서 모델이 애매하게 판단한 키워드들을 수집한다.

 : 모델 예측이 50%를 웃도는 데이터들을 1만개 추출하여 키워드 수집

 

현재 필터링이 가능한 키워드들은 제외하고 수집된다.( 씨X , 병X ...등은 이미 모델이 알고있기 때문에 확률이 90% 이상임)

 

수집한 키워드 예시) 

개 같 , 개 고생 , 개 많 , 개 좋 , 개무시 , 개나 줘 , 개뿔 , 노답 , 뒈지 , 뒤지 등등

 

그래서 이런 키워드들을 포함하고 있는 지를 판단하기 위해 코드를 작성했다.

def include_words(input_text,words_list):
    result = []
    temp = [input_text.find(x) for x in words_list]
    word_idx = [i for i, value in enumerate(temp) if value != -1]
    
    for idx in word_idx:
        result.append(words_list[idx])
        
    if result:
        return " ".join(result)
    else:
        return "not exist"

함수를 사용하여 칼럼을 새로 만들면 키워드들을 엑셀에서 필터링하여 확인할 수 있다.

 

이렇게 해서 라벨링 한다면 처음부터 끝까지 보는 것 보다 훨씬더 수월하고 빠르게 라벨링 할 수 있을 것이다.

반응형
저작자표시 비영리 (새창열림)

'Machine learning > NLP' 카테고리의 다른 글

[NLP] Fine-tuning(파인튜닝)과 in-context learning(인컨텍스트 러닝)  (0) 2021.12.14
[annotation]. 텍스트 데이터 라벨링 꿀팁(2)  (0) 2021.11.12
[NLP]. 한국어 맞춤법 검사기 사용하기 (feat. hanspell )  (0) 2021.10.27
[전처리]. 핸드폰 번호 , 계좌번호 , 주소 필터링(Python 정규표현식)  (0) 2021.10.14
[전처리]. 한국어 존댓말과 반말을 구별하는 방법(feat. komoran)  (0) 2021.10.14
    'Machine learning/NLP' 카테고리의 다른 글
    • [NLP] Fine-tuning(파인튜닝)과 in-context learning(인컨텍스트 러닝)
    • [annotation]. 텍스트 데이터 라벨링 꿀팁(2)
    • [NLP]. 한국어 맞춤법 검사기 사용하기 (feat. hanspell )
    • [전처리]. 핸드폰 번호 , 계좌번호 , 주소 필터링(Python 정규표현식)
    Acdong
    Acdong
    E-mail : alswhddh@naver.com / 자연어처리와 MLops 를 연구하고 있는 스타트업 개발자입니다.

    티스토리툴바