All Projects → bangjunyoung → KoreanTextMatcher

bangjunyoung / KoreanTextMatcher

Licence: other
한글 음절 근사 매칭/초성 검색 라이브러리

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to KoreanTextMatcher

NavilIME
Windows Hangul (Korean) Input Method Editor based on TSF
Stars: ✭ 79 (+102.56%)
Mutual labels:  korean, hangul
amazfit-bip-kr
Amazfit Bip Korean Firmware and tools for making it
Stars: ✭ 34 (-12.82%)
Mutual labels:  korean, hangul
kor-to-number.js
한글로 적힌 한국어 수사를 숫자로 변환하는 자바스크립트 라이브러리입니다.
Stars: ✭ 39 (+0%)
Mutual labels:  korean, hangul
hangul-online
Hangul fonts storage and viewer
Stars: ✭ 16 (-58.97%)
Mutual labels:  korean, hangul
hanspell
(주)다음과 부산대학교 인공지능연구실/(주)나라인포테크의 웹 서비스를 이용한 한글 맞춤법 검사기.
Stars: ✭ 72 (+84.62%)
Mutual labels:  korean, hangul
type-hangul
⌨️ 한글 타이핑 효과 라이브러리
Stars: ✭ 80 (+105.13%)
Mutual labels:  korean, hangul
gksdud
A tiny JavaScript utility that corrects miswritten Hangeul sentences like gksdud
Stars: ✭ 28 (-28.21%)
Mutual labels:  korean, hangul
uck
숫자 -> 한글 단위 변환 모듈
Stars: ✭ 27 (-30.77%)
Mutual labels:  korean, hangul
hangul ipsum
한글 버전의 lorem ipsum 생성기
Stars: ✭ 17 (-56.41%)
Mutual labels:  korean
PyKOMORAN
(Beta) PyKOMORAN is wrapped KOMORAN in Python using Py4J.
Stars: ✭ 38 (-2.56%)
Mutual labels:  korean
zsh-hangul
🇰🇷 한영 전환의 지옥에서 벗어나서 광명찾자!
Stars: ✭ 145 (+271.79%)
Mutual labels:  korean
AlgorithmSet
대회용 Algorithm / DS 모음
Stars: ✭ 18 (-53.85%)
Mutual labels:  korean
IreneBot
Irene Bot for Discord in Python
Stars: ✭ 15 (-61.54%)
Mutual labels:  korean
hacktoberfestkorea
Hacktoberfest Korea site
Stars: ✭ 49 (+25.64%)
Mutual labels:  korean
Android-DarkTheme-CodeLab
코드랩 가이드 문서 👉
Stars: ✭ 18 (-53.85%)
Mutual labels:  korean
KoLM
Korean text normalization and language preparation package for LM in Kaldi-based ASR system
Stars: ✭ 46 (+17.95%)
Mutual labels:  korean
nodejs-support
한국어 형태소 및 구문 분석기의 모음인, KoalaNLP의 Javascript(Node.js) 버전입니다.
Stars: ✭ 81 (+107.69%)
Mutual labels:  korean
text-classification-transformers
Easy text classification for everyone : Bert based models via Huggingface transformers (KR / EN)
Stars: ✭ 32 (-17.95%)
Mutual labels:  korean
TIL
[2020, 12, 12 ~ ing] Today I Learned
Stars: ✭ 18 (-53.85%)
Mutual labels:  korean
FCH-TTS
A fast Text-to-Speech (TTS) model. Work well for English, Mandarin/Chinese, Japanese, Korean, Russian and Tibetan (so far). 快速语音合成模型,适用于英语、普通话/中文、日语、韩语、俄语和藏语(当前已测试)。
Stars: ✭ 154 (+294.87%)
Mutual labels:  korean

KoreanTextMatcher 4.0

Build Status codecov

KoreanTextMatcher는 한글 음절 근사 매칭 및 초성 검색 기능을 제공하는 자바 라이브러리다. 주요 기능과 특징은 다음과 같다:

  • 단순 문자열 검색, 한글 음절 근사 매칭, 초성 매칭 모두 지원
  • 한 문자열 내에서 여러 개의 패턴 검색 가능
  • 정규식 앵커 ^$를 이용하여 패턴의 위치를 검색 대상 문자열의 시작과 끝으로 한정할 수 있음
  • Unicode Hangul Jamo와 Unicode Hangul Compatibility Jamo 모두 지원
  • 한글 자모를 음절로 조합하고 음절을 자모로 분해하는 API 제공
  • 가비지 컬렉션을 최소화하도록 세심하게 작성된 코드
  • 완전 쓰레드 세이프: 모든 타입이 이뮤터블
  • 100개 이상의 유닛 테스트 케이스, 99% 이상의 코드 커버리지 등을 통해 검증된 품질
  • 오픈 소스: 수정, 배포, 2차 저작 등 어떤 프로그램에도 자유롭게 사용 가능한 BSD 라이선스. 상용 프로그램에도 물론 아무 제약없이 사용할 수 있다(저작권 문구는 절대 지우지 마세요!).
  • JDK 11 상에서 개발/테스트되었고 안드로이드 프로젝트에도 수정없이 사용 가능

음절 근사 매칭과 초성 매칭

KoreanTextMatcher 4.0에서 구현한 한글 음절 근사 매칭은 두벌식 한글 자판 입력을 기준으로 두 한글 음절간의 유사성을 판단하는 방법이다. 예를 들어 '봤'이라는 음절이 주어질 때 'ㅂ', '보', '봐', '봣', '봤'이라는 패턴은 모두 '봤'에 근사적으로 부합한다. 반면 '와', '밨', '봑' 등의 패턴은 각각 초성, 중성, 종성이 '봤'의 것과 다르므로 근사적으로 부합하지 않는다. 음절 근사 매칭을 이용하면 가능한한 적은 수의 한글 입력만으로 대량의 텍스트 내에서 특정 한글 패턴을 쉽게 찾아낼 수 있다.

초성 매칭은 음절 근사 매칭 중 초성만이 부합하는 특수한 경우라고 볼 수 있기 때문에 KoreanTextMatcher에서는 음절 근사 매칭과 초성 매칭을 구분하지 않는다.

빌드

빌드에 필요한 도구:

  • JDK 11 이상
  • Gradle 5.6 이상
  • JUnit 5.6 이상
$ cd /path/to/KoreanTextMatcher
$ ./gradlew build

BUILD SUCCESSFUL in 6s
5 actionable tasks: 5 executed

빌드가 성공하면 build/libs 폴더 밑에 KoreanTextMatcher-X.xx.jar 파일이 생성되는데, 이것을 여러분의 프로젝트로 임포트해서 쓰면 된다.

주의: 안드로이드 개발 환경에서는 JDK 12 이상의 버전에서 빌드한 JAR 파일을 사용하면 파일 포맷 에러가 발생하는 경우가 있다. 그럴 경우 JDK 11 이하에서 빌드한 JAR 파일을 사용하기 바란다. 참고로 바이너리 배포 페이지에 있는 JAR 파일은 JDK 11에서 빌드한 것이다.

프로그래밍

import io.github.bangjunyoung.KoreanTextMatch;
import io.github.bangjunyoung.KoreanTextMatcher;

/* ... */

KoreanTextMatcher matcher = new KoreanTextMatcher("음ㅈ 그ㅅ");
KoreanTextMatch match = matcher.match("한글 음절 근사 매칭");
if (match.success()) {
    System.out.format("%s: %s[%d]에서 시작, 길이 %d\n",
        match.value(), text, match.index(), match.length());
}

자세한 API 사용법은 위키 페이지 참조.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].