ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 불용어(Stopwords)
    Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 17. 14:14
    반응형

    https://wikidocs.net/22530 참고하여 공부한 내용 정리

    04) 불용어(Stopwords)

    데이터에서 유의미한 단어 토큰만을 선별하기 위해 큰 의미 없는 단어 토큰을 제거하는 작업이 필요함. 여기서 큰 의미가 없다라는 것은 자주 등장하지만 분석하기에 큰 도움이 되지 않는 단어를 말함. 예를 들어 I, my, me, over, 조사, 접미사 같은 단어들은 자주 등장하지만 분석에 기여하는 바가 없음. 이러한 단어들을 불용어(Stopwords)라고 함

    1. NLTK에서 불용어 확인


    from nltk.corpus import stopwords
    stopwords.words('english')[:10]
    ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're"]

    2. NLTK 통해 불용어 제거하기


    from nltk.corpus import stopwords
    from nltk.tokenize import word_tokenize
    
    example = "Family is not an important thing. It's everything."
    stop_words = set(stopwords.words('english'))
    
    word_tokens = word_tokenize(example)
    
    result = []
    for w in word_tokens:
        if w not in stop_words:
            result.append(w)
    
    print(word_tokens)
    print(result)
    ['Family', 'is', 'not', 'an', 'important', 'thing', '.', 'It', "'s", 'everything', '.']
    ['Family', 'important', 'thing', '.', 'It', "'s", 'everything', '.']

    3. 한국어에서 불용어 제거하기


    한국어에서 불용어를 제거하는 방법으로는 간단히 토큰화 후 조사, 접속사 등을 제거하는 방법이 있음

    from nltk.corpus import stopwords
    from nltk.tokenize import word_tokenize
    
    example = "고기를 아무렇게나 구우려고 하면 안 돼. 고기라고 다 같은 게 아니거든. 예컨대 삼겹살을 구울 때는 중요한 게 있지."
    stop_words = "아무거나 아무렇게나 어찌하든지 같다 비슷하다 예컨대 이럴정도로 하면 아니거든"
    
    stop_words = stop_words.split(' ')
    word_tokens = word_tokenize(example)
    
    result = []
    for w in word_tokens:
        if w not in stop_words:
            result.append(w)
    
    print(word_tokens)
    print(result)
    ['고기를', '아무렇게나', '구우려고', '하면', '안', '돼', '.', '고기라고', '다', '같은', '게', '아니거든', '.', '예컨대', '삼겹살을', '구울', '때는', '중요한', '게', '있지', '.']
    ['고기를', '구우려고', '안', '돼', '.', '고기라고', '다', '같은', '게', '.', '삼겹살을', '구울', '때는', '중요한', '게', '있지', '.']
    반응형

    댓글

Designed by Tistory.