• 검색 결과가 없습니다.

해시태그 전처리 과정

문서에서 저작자표시 (페이지 33-37)

B. 인스타그램 감정 분류 프로세스

2. 해시태그 전처리 과정

감정 형용사가 포함된 해시태그의 감정 키워드를 추출하기 위해서는 먼저 [그림 3-3]에서 전처리 과정이 필요하다.

본 절에서는 해시태그 데이터를 효과적으로 적용하기 위해 파이썬(Python)의 자 연어 처리 라이브러리인 NLTK(Natural Language Toolkit)[32]를 이용하여 전처리 과정인 (1) 토큰화(Tokenizing), (2) 불용어 제거(Deleting Stopword), (3) POS(Part of Speech) 태깅 단계 순으로 기술한다.

(1) 토큰화(Tokenizing)

전처리 과정의 첫 단계로는 문장 내에서 단어별로 토큰화 시키는 것이다. 일반적 으로 공백을 기준으로 하는 토큰화는 다음 [표 3-1]과 같다.

>>> sentence = "At eight o'clock on Thursday morning“

>>> tokens = nltk.word_tokenize(sentence)

>>> tokens

['At', 'eight', "o'clock", 'on', 'Thursday', 'morning']

[표 3-1] 일반적인 토큰화 과정

본 연구에서는 행 단위로 수집한 해시태그 단어들을 라인별로 한 줄씩 불러와 리스트 형태로 [표 3-2]와 같이 토큰화를 수행한다.

>>> txtList=usertxt.readlines()

>>> for a in range(len(txtList)):

tokens = nltk.word_tokenize(txtList[i]) [표 3-2] 본 연구의 토큰화

(2) 불용어 제거(Deleting Stopword)

불용어는 단어를 분석할 때 제거가 되는 의미 없는 기능어를 뜻한다. 보통 불용 어를 제거할 때에는 불용어 리스트를 이용하거나 상황에 따라 불용어를 정의해 사 용한다. 이에 출현 빈도가 높은 영어의 관사나, 전치사, 접속사 등을 불용어로 취급 하는 경우도 있고, 출현 빈도가 높지만 특정한 의미를 지니는 단어는 불용어에서 제외되는 경우도 있다. 다음 [표 3-3]은 파이썬의 NLTK 라이브러리에 포함된 영 어단어의 불용어 리스트를 보여준다.

>>> from nltk.corpus import stopwords

>>> stopwords.words('english')

['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',

'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now']

[표 3-3] NLTK 라이브러리에 포함된 불용어(Stopwords) 리스트

본 절에서는 최종 감정 키워드를 추출하는데 의미가 없는 숫자와 기호 등 알파 벳 형태의 문자열을 제외한 나머지를 불용어로 정의한다. 해시태그는 보통 다른 사 용자들과의 공유를 목적으로 게시하기 때문에 사용자들의 기본적인 표기법이 대부 분 기본형태에 가까우며, 띄어 쓰거나 이모티콘은 해시태그로 인식 자체가 되지 않 기 때문에 불용어 삭제 단계에서는 거의 숫자나 기호형태나 다른 나라의 언어들이 삭제된다. 불용어 제거 단계를 거치면 (3)의 POS 태깅 단계를 통하여 품사를 파악 한다.

(3) POS(Part of Speech) 태깅

본 단계에서는 각각의 단어들에 대한 품사를 파악하는 POS 태깅 과정을 수행한 다. 다음 [표 3-4]는 기본적인 POS 태깅 과정을 보여준다.

>>> sentence = “At eight o'clock on Thursday morning”

>>> tokens = nltk.word_tokenize(sentence)

>>> tagged = nltk.pos_tag(tokens)

>>> tagged

[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'), ('on', 'IN'), ('Thursday', 'NNP'), ('morning', 'NN')]

[표 3-4] 기본적인 POS 태깅 과정

[표 3-5]은 품사를 파악하는데 이용한 Penn Treebank Project의 품사 태깅에 사 용되는 태그들의 코드와 그에 대한 품사 목록을 나타내준다.

CC Coordinating conjunction PRP$ Possessive pronoun

CD Cardinal number RB Adverb

DT Determiner RBR Adverb, comparative EX Existential there RBS Adverb, superlative

FW Foreign word RP Particle

IN Preposition or

subordinating conjunction SYM Symbol

JJ Adjective TO to

JJR Adjective, comparative UH Interjection JJS Adjective, superlative VB Verb, base form

LS List item marker VBD Verb, past tense

MD Modal VBG Verb, gerund or present participle NN Noun, singular or mass VBN Verb, past participle

NNS Noun, plural VBP Verb, non-3rd person singular present

NNP Proper noun, singular VBZ Verb, 3rd person singular NNPS Proper noun, plural WDT Wh-determiner

PDT Predeterminer WP Wh-pronoun

POS Possessive ending WP$ Possessive wh-pronoun PRP Personal pronoun WRB Wh-adverb

[표 3-5] POS(Part of Speech) Codes

본 논문에서는 감정 형용사가 포함된 감정 키워드를 추출하기 위하여 태그가 JJ 즉, 형용사인 단어들을 이용한다. 또한 형용사(JJ)의 품사를 가지고 있는 JJR과 JJS 도 함께 이용하여 태깅의 정확도를 높이기로 한다.

다음 [그림 3-5]는 전처리 과정을 거쳐 품사까지 파악하여 추출된 해시태그의 일 부를 보여준다.

[그림 3-5] 전처리 과정을 거친 해시태그 추출

문서에서 저작자표시 (페이지 33-37)

관련 문서