# 형태소 및 품사 빈도 분석 - 작성일: 2021년 6월 25일(금) - 작성자: jino ## 목차 [TOC] ## 프로그램 동작 방식 - 형태소 및 품사 빈도 분석 프로그램 1. 명령행 인자로 들어온 research, essay 정보 파싱하여 db에 삽입 1-1. tbl_research 테이블에 데이터 삽입 1-2. tbl_essay 테이블에 입력할 데이터 삽입 2. 텍스트 파일을 열어 형태소 분석 2-1. Out 파일 출력 3. out 파일을 읽어 pos 테이블에 품사 빈도 저장 4. out 파일의 분석 된 형태소와 tbl_pysdic 테이블과 비교하여, tbl_psypos_counting 테이블에 빈도 저장 5. 저장된 tbl_pos_counting와 tbl_psypos_counting의 빈도 csv 파일로 저장 - psydic 생성 프로그램 1. 엑셀 파일 입력 2. 엑셀 파일을 읽어 psydic 테이블에 입력 ## 사전준비 1. MariaDB 도커로 설치 - 도커 설치 - https://www.docker.com/get-started 에서 도커 다운로드 및 설치 - 도커로 MariaDB 및 DBeaver 설치 - https://firework-ham.tistory.com/105 보고 따라하기 2. database 생성 - DBeaver로 아래 sql 실행 ``` CREATE DATABASE pos_analysis DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; ``` 2. MariaDB 테이블 생성 - DBeaver로 아래 sql 하나 하나 실행 ![](https://i.imgur.com/3KHjBb9.jpg) ``` use pos_analysis; CREATE TABLE tbl_research( research_name VARCHAR(100) NOT NULL PRIMARY KEY, research_date DATETIME ); ``` ``` use pos_analysis; CREATE TABLE tbl_essay( essay_name VARCHAR(100) NOT NULL PRIMARY KEY, file_name VARCHAR(100), essay_memo VARCHAR(900), essay_author VARCHAR(50), essay_from VARCHAR(100), essay_type VARCHAR(100), research_name VARCHAR(100) NOT NULL, FOREIGN KEY (research_name) REFERENCES tbl_research(research_name) ); ``` ``` use pos_analysis; CREATE TABLE tbl_pos_counting( tag VARCHAR(300) NOT NULL, count INT NOT NULL, essay_name VARCHAR(100) NOT NULL, PRIMARY KEY(tag, count, essay_name), FOREIGN KEY (essay_name) REFERENCES tbl_essay(essay_name) ); ``` ``` use pos_analysis; CREATE TABLE tbl_psypos_counting( tag VARCHAR(300), count INT, essay_name VARCHAR(100) NOT NULL, PRIMARY KEY(tag, count, essay_name), FOREIGN KEY (essay_name) REFERENCES tbl_essay(essay_name) ); ``` ``` use pos_analysis; CREATE TABLE tbl_psydic( word VARCHAR(300) NOT NULL, type VARCHAR(100) NOT NULL, PRIMARY KEY(word, type) ); ``` 3. python 라이브러리 설치 - requirements.txt 이용하여 필요 라이브러리 설치 ``` pip3 install -r ./requirements.txt ``` 4. tbl_psydic 생성 - psydic.py 실행 - psydic.py 실행 시 인자값 ``` --file_path : 엑셀 파일 위치 (필수) ``` - tbl_psydic 생성 프로그램 실행 예시 ``` python3 psydic.py --file_path ./data/개발자전달용_샘플심리사전.xlsx ``` - tbl_psydic 테이블에 정보가 생성됨. ## 형태소 및 품사 분석 - morph_analysis.py 실행 - morph_analysis.py 실행 시 인자값 ``` --file_path : 텍스트 파일 위치 (필수) --research_name : 리서치 명 (필수) --essay_name : 에세이 명 (필수) ~~~~ --research_date : 리서치 날짜 (선택) ex) 2021-06-25 09:30:28, 2021-06-25 --essay_author : 에세이 작성자 (선택) --essay_memo : 에세이 메모 (선택) --essay_from : 에세이 출처 (선택) --essay_type : 에세이 유형 (선택) ``` - 형태소 및 품사 빈도 분석 프로그램 실행 예시 ``` morph_analysis.py --file_path ./data/test2.txt --research_name=test1 --research_date=2021-06-25 --essay_name=test1 ``` - 분석 결과는 DB와 result폴더에 생성됨.