본문 바로가기
IT/Java

Word Cloud를 위한 한국어 처리기 open-korean-text (with. Maven)

by eddie_factory 2018. 10. 23.
반응형


우선 Word Cloud 란? 데이터에서 얻어진 태그/워드들을 분석하여 중요도나 인기도 등을 고려하여 시각적으로 늘어 놓은 것을 말합니다.



프로젝트 순서.

1. 데이터 수집 (웹 크롤링으로 얻은 웹문서나 파일문서들)

2. 형태소 분리 (한글.....)

3. D3.js를 이용하여 단어드를 Word Cloud로 시각화.


이때 가지고 있는 데이터의 형태소를 분석하여 명사만을 추출, word cloud를 만들고 싶었습니다.



트위터에서 만들고 2017년 이후 개발은 openkoreantext.org에서 하는 오픈소스 한국어 처리기.

Java로 래퍼된 한국어를 처리하는 Java/Scala 라이브러리입니다.



open-korean-text의 GitHub를 보면

normalization(정규화), tokenization(토큰화), stemming(어근화), phrase extraction(어구추출) 이렇게 네가지 기능을 지원한다고 나와 있지만, stemming은 지원하지 않는 것 같습니다.

 

  -- twitter-korean-text에선 stemming 지원합니다.



Maven 이용시 pom.xml에 아래 dependency를 추가합니다.


<dependency>

<groupId>org.openkoreantext</groupId>

<artifactId>open-korean-text</artifactId>

<version>2.1.0</version>

</dependency>

<dependency>

<groupId>org.scala-lang</groupId>

<artifactId>scala-library</artifactId>

<version>2.12.4</version>

</dependency>



-- 소스 --


1
2
3
4
5
6
7
8
9
10
11
// fullSentence를  정규화.
CharSequence normalized = OpenKoreanTextProcessorJava.normalize(fullSentence);
 
// 정규화된 문장을 토큰화.
Seq<KoreanTokenizer.KoreanToken> tokens = OpenKoreanTextProcessorJava.tokenize(normalized);
 
// 토큰화된 문장의 어구추출
List<KoreanPhraseExtractor.KoreanPhrase> phrases =  OpenKoreanTextProcessorJava.extractPhrases(tokens, truetrue);
        
//KoreanTokenJava 형태로 변환
List<KoreanTokenJava> javaParsed = OpenKoreanTextProcessorJava.tokensToJavaKoreanTokenList(tokens);
cs



위와 같이 fullSentence (전체문장(String))을 정규화, 토큰화, 어구 추출, 명사(Noun), 동사(Verb), 형용사(Adjective) 등으로 분리하여 사용할 수 있습니다.


하지만 100% 정확하게 처리해주진 않습니다..

참고하시길...



참조 : https://github.com/open-korean-text/open-korean-text







반응형

'IT > Java' 카테고리의 다른 글

JAVA 제네릭(Generic) 이해하기  (0) 2021.04.06
JVM의 이해  (0) 2021.04.05
String, StringBuffer, StringBuilder 특징 및 차이점  (0) 2020.03.24
Lombok 어노테이션 설명  (0) 2018.12.06
Servlet 이란  (0) 2018.04.11

댓글