kuroshiro는 일본어 문장을 히라가나, 가타카나 및 로마자로 변환할 수 있는 라이브러리입니다. 후리가나와 오쿠리가나 방식도 지원합니다.
다른 언어로 읽기: English, 日本語, 简体中文, 繁體中文, Esperanto, 한국어.
여기서 데모를 확인해보세요.
- 일본어 문장 => 히라가나, 가타카나, 로마자
- 후리가나와 오쿠리가나 지원
- 🆕여러 형태소 분석기 지원
- 🆕여러 로마자 표기법 지원
- 유용한 일본어 유틸리티 포함
- 2.x는 Node.js 22+ 또는 Promise를 포함한 ES2015를 기본 지원하는 브라우저가 필요합니다. Internet Explorer는 지원하지 않습니다. 형태소 분석기의 실행 환경 요구 사항도 따로 확인해 주세요.
Kuroshiro.Util.kanaToHiragna(...)를Kuroshiro.Util.kanaToHiragana(...)로 바꿔 주세요. 이전 이름은 제거되었습니다.- CommonJS
require, ESM 기본 가져오기, 브라우저 전역 변수Kuroshiro, 비동기init()/convert()API는 계속 지원합니다. - TypeScript 선언이 포함되어 있습니다. TypeScript 사용법을 참고해 주세요. 아래 예제에서는 타입 선언을 포함한 Kuromoji 2.0 beta를 사용합니다.
각 플러그인을 사용하기 전에 호환성을 확인해 주세요.
| 분석기 | Node.js 지원 | 브라우저 지원 | 플러그인 저장소 | 개발자 |
|---|---|---|---|---|
| Kuromoji | ✓ | ✓ | kuroshiro-analyzer-kuromoji | Hexen Qi |
| Mecab | ✓ | ✗ | kuroshiro-analyzer-mecab | Hexen Qi |
| Yahoo Web API (유지보수 일시 중단) | ✓ | ✗ | kuroshiro-analyzer-yahoo-webapi | Hexen Qi |
Yahoo Web API 분석기는 API 마이그레이션이 완료되지 않았으며 유지보수가 일시 중단된 상태입니다. 새 프로젝트에서는 사용을 권장하지 않습니다. 자세한 내용은 유지보수 상태를 확인해 주세요.
npm을 이용하여 설치합니다.
$ npm install kuroshiro@beta kuroshiro-analyzer-kuromoji@beta라이브러리를 불러옵니다. import 방식도, require 방식도 좋습니다.
ES6 Module import 방식의 예시
// 이 예시에서는 kuroshiro-analyzer-kuromoji도 설치하였습니다.
import Kuroshiro from "kuroshiro";
import KuromojiAnalyzer from "kuroshiro-analyzer-kuromoji";
// 객체 생성
const kuroshiro = new Kuroshiro();
// 초기화
// 여기서는 async/await을 사용하지만, Promise를 사용해도 좋습니다.
await kuroshiro.init(new KuromojiAnalyzer());
// 변환하기
const result = await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });CommonJS require 방식의 예시
const Kuroshiro = require("kuroshiro");
const KuromojiAnalyzer = require("kuroshiro-analyzer-kuromoji");
const kuroshiro = new Kuroshiro();
kuroshiro.init(new KuromojiAnalyzer())
.then(function(){
return kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
})
.then(function(result){
console.log(result);
})설치된 npm 패키지의 dist/kuroshiro.min.js를 사용하고 HTML에 추가하세요:
HTML에서 script 태그로 불러옵니다.
<script src="url/to/kuroshiro.min.js"></script>이 예시에서는, kuroshiro-analyzer-kuromoji.min.js를 사용합니다. kuroshiro-analyzer-kuromoji에서 확인해보세요.
<script src="url/to/kuroshiro-analyzer-kuromoji.min.js"></script>객체를 생성합니다.
var kuroshiro = new Kuroshiro();node_modules/kuromoji/dict/의 사전 파일을 public/dict/ 같은 공개 디렉터리에 복사하고, dictPath를 해당 파일의 URL(이 예제에서는 /dict/)로 설정하세요. 자세한 내용은 브라우저 사전 배포 안내를 참고하세요.
kuroshiro를 객체화한 분석기로 초기화하고, 변환합니다.
kuroshiro.init(new KuromojiAnalyzer({ dictPath: "/dict/" }))
.then(function () {
return kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", { to: "hiragana" });
})
.then(function(result){
console.log(result);
})
.catch(function (error) {
console.error(error);
});예시
const kuroshiro = new Kuroshiro();kuroshiro를 분석기의 객체와 함께 초기화합니다. 형태소 분석기를 먼저 불러온 후 초기화 해야합니다. 앞서 언급했던 형태소 분석기 플러그인을 사용할 수 있습니다. 분석기를 초기화하는 방법에 대하여는 각 분석기의 문서를 참고해 주세요.
인자
analyzer- 분석기의 객체.
예시
await kuroshiro.init(new KuromojiAnalyzer());문자열을 옵션과 함께 음절 문자로 변환합니다.
인자
str- 변환할 문자열.options- 선택적 인자 변환 옵션. 아래 표를 확인해 주세요.
| 옵션 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| to | String | "hiragana" | 목표 음절 문자hiragana (히라가나),katakana (가타카나),romaji (로마자) |
| mode | String | "normal" | 변환 모드normal (일반),spaced (공백 문자로 분리),okurigana (오쿠리가나),furigana (후리가나) |
| romajiSystem* | String | "hepburn" | 로마자 표기법nippon (일본식),passport (여권식),hepburn (헵번식) |
| delimiter_start | String | "(" | 구분 문자(시작) |
| delimiter_end | String | ")" | 구분 문자(끝) |
*: 매개변수 romajiSystem은 매개변수 to가 romaji일 경우에만 적용됩니다. 자세한 사항은 로마자 표기법을 참고하세요.
예시
// normal (일반)
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"normal", to:"hiragana"});
// 결과:かんじとれたらてをつなごう、かさなるのはじんせいのライン and レミリアさいこう!// spaced (공백 문자로 분리)
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"spaced", to:"hiragana"});
// 결과:かんじとれ たら て を つなごう 、 かさなる の は じんせい の ライン and レミ リア さいこう !// okurigana (오쿠리가나)
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"okurigana", to:"hiragana"});
// 결과: 感(かん)じ取(と)れたら手(て)を繋(つな)ごう、重(かさ)なるのは人生(じんせい)のライン and レミリア最高(さいこう)!// furigana (후리가나)
await kuroshiro.convert("感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!", {mode:"furigana", to:"hiragana"});
// 결과: 感じ取れたら手を繋ごう、重なるのは人生のライン and レミリア最高!
예시
const result = Kuroshiro.Util.isHiragana("あ");입력한 문자가 히라가나인지 확인합니다.
입력한 문자가 가타카나인지 확인합니다.
입력한 문자가 가나인지 확인합니다.
입력한 문자가 한자인지 확인합니다.
입력한 문자가 일본어인지 확인합니다.
입력한 문자열에 히라가나가 포함되었는지 확인합니다.
입력한 문자열에 가타카나가 포함되었는지 확인합니다.
입력한 문자열에 가나가 포함되었는지 확인합니다.
입력한 문자열에 한자가 포함되었는지 확인합니다.
입력한 문자열에 일본어가 포함되었는지 확인합니다.
입력한 가나 문자열을 히라가나로 변환합니다.
입력한 가나 문자열을 가타카나로 변환합니다.
입력한 가나 문자열을 로마자로 변환합니다. 매개변수 system은 "nippon", "passport", "hepburn" 을 받습니다. (기본값: "hepburn").
kuroshiro는 세 가지의 로마자 표기법을 지원합니다.
nippon: 일본식 로마자 표기법. ISO 3602 Strict를 참고하세요.
passport: 여권식 로마자 표기법. 일본 외무성이 발행한 헵번식 로마자 철자법표를 참고하세요.
hepburn: 헵번식 로마자 표기법. BS 4812 : 1972를 참고하세요.
각 로마자 표기법의 차이를 확인할 수 있는 유용한 웹페이지가 있습니다.
후리가나에는 장음을 구별하는 데 필요한 발음 정보가 충분하지 않을 수 있으므로, 가나 표기를 직접 로마자로 변환하는 것만으로는 실제 발음을 정확하게 재현할 수 없습니다. 자세한 설명은 なぜ フリガナでは ダメなのか?를 참고하세요.
따라서 kanaToRomaji()는 세 표기법 모두 가나 표기만으로 장음을 추정하지 않습니다. 다만 장음 기호 ー는 선택한 표기법에 따라 처리합니다.
예를 들어, kanaToRomaji()로 こうし를 변환하면 nippon, passport, hepburn에서 각각 kousi, koushi, koushi가 됩니다.
이러한 가나 직접 변환의 제한이 convert()의 장음 처리를 막는 것은 아닙니다. convert()는 분석기가 제공하는 발음 정보가 있으면 이를 사용하며, 한자를 로마자로 변환할 때도 주석 모드 사용 여부와 관계없이 동일하게 처리합니다. 따라서 변환 결과는 분석기가 제공하는 발음 정보에 따라 달라집니다.
뒤의 자음을 겹쳐 쓸 수 없을 때는 세 표기법 모두 '로 표시합니다. 예: っい → 'i, あっ → a'. 이는 kuroshiro의 자체 규칙이며 추가로 발음하는 음절을 뜻하지 않습니다.
CONTRIBUTING을 확인해 주세요.
- kuromoji
- wanakana
MIT
