빅데이터 최신기술 과제 (대용량 파일 어절 unigram bigram trigram 빈도 조사 / 워드클라우드 생성)
- 최초 등록일
- 2022.04.18
- 최종 저작일
- 2019.05
- 17페이지/ MS 워드
- 가격 2,500원
목차
1. 대용량 문서 파일에 대한 정보 출력
2. 어절 unigram, bigram, trigram 빈도 조사
3. wordcloud 생성
4. 문장생성 확률이 높은(가장 그럴듯한) 문장 생성
본문내용
* 어절 ngram(uni, bi, tri)추출결과는 파일이 아닌 터미널 출력으로 대신하였다.
* 사용한 문서 : KCCq28_Korean_sentences_UTF8.txt.gz
(컴파일에 막대한 시간이 들어, 일부 출력물은 불가피하게 그 일부인 1520 문장으로 대신하였다.)
* 확률이 0이 되어 문장생성이 제대로 되지 않는 경우는, 라플라스 스무딩( add 1 smoothing)을 이용한다. 각 빈도 +1 씩 해주어 0인 빈도를 없앤다. 예를 들어 원래 확률은 ‘전체 출현개수’ 분의 ‘이것의 출현개수’였다면, ‘n+v(1씩 더해진 모든 개수)’분의 ‘c+1(add 1)’으로 나타낼 수 있다.
1. 대용량 문서 파일에 대한 정보 출력
- 코드와 구현 방법
(1) 파일의 문장 수 : sent_tokenize(text)로 문서를 문장 단위로 토큰화한다. 토큰화된 결과의 길이를 출력하면 문장 수가 출력된다. (이때, 전처리 과정을 통해 각 문장의 시작 부분에 ‘SS’를 추가하고 맨 끝 부분에 ‘SE’를 추가한다. )
(2) 파일의 바이트 수 : os module안의 os.path.getsize(path)함수를 사용하면, path의 파일 크기를 byte단위로 return 받을 수 있다.
(3) 파일의 어절 수 : word_tokenize(text)로 문서를 단어 단위로 토큰화한다. 토큰화된 결과의 길이를 출력하면 어절 수가 출력된다.
2. 어절 unigram, bigram, trigram 빈도 조사 - P(x), P(y|x), P(z|x,y) 계산에 사용하기 위한 것
(1) unigram 상위 N개 빈도 조사
- 코드와 구현 방법
문서를 단어 단위로 토큰화 한 뒤, Counter()함수로 unique한 단어의 개수를 센다. most_common(1000)함수로 상위 1000개의 unigram을 추출한다.
참고 자료
없음