Jam's story

자연어 처리 본문

2021-2학기/데이터분석

자연어 처리

애플쩀 2022. 3. 23. 12:17

데이터정제

BeautifulSoup(뷰티풀숩)을 통해 HTML 태그를 제거

정규표현식으로 알파벳 이외의 문자를 공백으로 치환

NLTK 데이터를 사용해 불용어(Stopword)를 제거

어간추출(스테밍 Stemming)과 음소표기법(Lemmatizing)의 개념을 이해하고 SnowballStemmer를 통해 어간을 추출

html태그제거

soup=BeautifulSoup(sample, 'html.parser')

soup.text

(.text 를 추가하는 것 까먹지 말기 )

이 방법으로도 html 제거를 할 수 있다.

특수기호제거

import re -> 정규표현식을 이용해서 특수문자 제거

re.sub('[^a-zA-Z]' , ' ' , soup.text)

a-z ~ A-Z가 아닌 문자를 지우고 공백으로 채워준다

cleaned 변수에 넣고 출력

모두 소문자로 바꾼다- With 랑 with는 다르게 인식하기 때문에 순수하게 단어만 보기 위해서

stopwords

오류처리- [Resource stopwords not found]

eng_stopwords(불용어) 를 출력

불용어 (조사 - 은는이가, 자주쓰이지만 의미없는 단어

i , am, a, boy 가 불용어 사전에 있는지 확인 -> i , am, a만 존재 (얘네만 불용어 사전에 포함 )

이제 이것을 없앨것

sample 을 소문자로 바꾸고, 단어별로 나눔

이 단어들을 for문을 통하여 각각이 불용어사전에 포함되는지 검사

​from nltk.corpus import stopword을 이용

이제 이 과정을 아까 그 함수에 넣어줌

이미 소문자 처리된 cleaned 변수를 split()로 단어별로 쪼개준다.

이 단어가 불용어 사전에 없다면 cleaned에 저장하기

return cleaned 를 하면 단어별로 쪼개서 나오고

문장처럼 출력하고 싶다면 return' '.join(cleaned)

train,unlabeld_train, test 데이터를 한번에 모아서 처리하기 위해 pd. concat 을 사용해서 모아준다

preprocessing 함수를 사용해서 의미없는 단어들을 없애준다


스태밍 -어간 추출

어간 추출은 어형이 변형된 단어로부터 접사 등을 제거하고 그 단어의 어간을 분리해 내는 것

"message", "messages", "messaging" 과 같이 복수형, 진행형 등의 문자를 같은 의미의 단어로 다룰 수 있도록 도와준다.

NLTK에서 제공하는 형태소 분석기를 사용

포터 스태머 사용방법 과 랭커스터스태머 사용 방법

어떤스태머이냐에 따라서 결과도 다르다 .예) maximum

어간 변경

음소표기법 -Lemmatization

레마타이제이션은 이때 앞뒤 문맥을 보고 단어의 의미를 식별하는 것

배 - 먹는 배 , 타는 배, 몇 배 등 동음이의어가 문맥에 따라 다른 의미를 가진다.

meet- meeting은 회의, meet 만나다 명사로쓰였는지, 동사로 쓰였는지에 따라 적합한 의미를 갖도록 추출

지금 까지 한 것을 함수로 만들고 적용

'2021-2학기 > 데이터분석' 카테고리의 다른 글

2021 K-ICT 데이터크리에이터 최우수상 수상  (0) 2022.03.25
자연어처리 영화댓글  (0) 2022.03.23
자연어처리 형태소 분석  (0) 2022.03.23
영화 댓글 자연어 처리  (0) 2022.03.23
데이터정제  (0) 2022.03.23
Comments