프로젝트/인공지능 기자 만들기

[인공지능 기자 만들기#6] 기사 자연어 분석기 만들기 - 형태소 분석, 의미분석

엘티엘 2020. 11. 24. 20:25

 

articles_20201119_0000_prep.csv
1.01MB

2020/11/04 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기#1] 설계하기 - Action Item 정의하기

2020/11/13 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기#2] 설계하기 - 프로세스 정의하기

2020/11/18 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기 #3] 뉴스기사 크롤링 만들기 - 네이버 헤드라인 뉴스 크롤링

2020/11/19 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기 #4] 뉴스기사 크롤링 만들기 - 뉴스기사 크롤러 (네이버 뉴스 크롤링)

2020/11/23 - [프로젝트/인공지능 기자 만들기] - [인공지능 기자 만들기#5] 기사 자연어 분석기 만들기 - 데이터 전처리

 

이제부터 본격적인 자연어 처리과정이다(사실 별건 없다 ㅎㅎ)

앞 단계에서 수집/전처리한 뉴스기사에 대해서 형태소 분석을 하고, 불필요한 형태소를 제거한다 (특수문자, 감탄사 등)

자연어 분석이대 대한 전체 그림이 필요한것 같아서 새로 그렸다.

 

아래 그림에서 보이는 것처럼 뉴스 데이터 수집/전처리 과정은 한번에 처리한다.

하지만 형태소 분석과 의미분석 단계는 헤드라인 단위로 처리된다.

인공지능 기자는 헤드라인 단위로 새로운 기사를 작성하기 때문이다

 

이중 오늘 포스팅에 포함되는 내용은

1. 전처리된 뉴스기사를 읽어 형태소 분석을 하고,

2. 불필요한 형태소를 제거하고,

3. Bag Of Words를 만드는 내용이다.

 

아래 사진이 전처리된 뉴스기사 이다. (입력 데이터)

 

전처리된 뉴스기사를 아래 그림처럼 각 문단별로 분리한다

(각 한줄한줄이 문단이며, 편의상 문장이 아니라 문단 단위로 처리했다)

 

각 문단을 BOW 에 넣어 저장한다. 아래 사진을 보면 각 단어마다 1 또는 0이 되어 있음을 알 수 있다. (단어가 2번 나타난다면 2가 된다)

BOW(Bag Of Words)에 대한 설명은 이미 잘되어있는 글들이 많아서... 생각한다.

 

코드에 대한 설명은 주석으로 대체한다.

input 파일은 글에도 첨부되어 있지만 이전단계의 output 파일이다.

참고로, 이번 단계에서는 코드를 돌려도 결과파일이 나오지 않으며, bow_df, paragraphs_df 를 이후에 활용하면 된다

 

기사 저작권 관련 문제가 될수 있다고 하여 코드는 삭제합니다.

 

여기까지 되었다면, 뉴스기사의 의미분석까지 되었다고 보면 된다.

우리가 언제 의미를 분석했냐? 라고 생각할 수도 있지만, BOW를 만든것이 의미를 분석한 것이나 마찬가지 이다.

"자연어로 작성된 뉴스기사를 어떻게 vector로 변환하는가?" 가 의미분석인데, 우리는 이것을 BOW를 통해 하였기 때문이다.

 

그럼 다음에는 이렇게 정리된 데이터를 통해 드디어 기사를 만들어 보자!!

반응형