Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

9beach/hanspell

Repository files navigation

hanspell

hanspell은 (주)다음과 네이버(주)의 웹 서비스를 이용한 한글 맞춤법 검사기입니다.

비주얼 스튜디오 코드 한스펠하스켈로 작성한 hanspell-hs도 있으니 참고하세요.

npm version

설치

한스펠 릴리스에서 실행파일을 다운로드 하세요.

macOS에서는 다운로드한 실행 파일에 검역(quarantine) 속성이 붙어 "확인되지 않은 개발자" 경고가 뜹니다. 다음 명령으로 한 번만 속성을 지우면 이후 경고 없이 실행됩니다.

xattr -d com.apple.quarantine ./hanspell

소스를 받아서 설치하려면 Node.js 18 이상을 설치한 뒤 다음을 실행하세요.

npm install -g hanspell

Node.js 환경에 따라 sudo 명령이 필요할 수도 있습니다.

sudo npm install -g hanspell

명령어 사용법

$ hanspell-cli -h
사용법: hanspell-cli [-d | -n | -a | -h]
옵션:
 -d, --daum [default] 다음 서비스를 이용해서 맞춤법을 교정합니다
 -n, --naver 네이버 서비스를 이용해서 맞춤법을 교정합니다
 -a, --all 두 서비스의 모든 결과를 반영해서 맞춤법을 교정합니다
 -h, --info 도움말을 출력합니다
버그 리포트와 제안: <https://github.com/9beach/hanspell/issues>
한스펠 홈 페이지: <https://github.com/9beach/hanspell/>

문장을 직접 입력하거나 클립보드에서 복사해서 맞춤법을 교정할 수 있습니다. 다음은 사용 예시입니다. CTRL + D는 줄을 바꾸고 맨 앞에서 입력해야 합니다.

$ hanspell-cli
나는 차가운 모래속에 두 손을 넣고 검게 빛나는 바다를 바라본다.
우주의 가장자리 같다.
쇼코는 해변에 서 있으면 이세상의 변두리에 선 느낌이 든다고 말했었다.
CTRL + D
모래속에 -> 모래 속에
띄어쓰기 오류입니다. 대치어를 참고하여 고쳐 쓰세요.
이세상의 -> 이 세상의
관형사는 뒤에 오는 말과 띄어 쓰는 것이 옳습니다.
...

스크린숏

파일의 맞춤법을 교정하려면 다음과 같이 명령합니다.

cat your-text | hanspell-cli

로그는 생략한 채 교정된 문장만 보려면 다음과 같이 명령합니다.

$ cat your-text | hanspell-cli 2> /dev/null
나는 차가운 모래 속에 두 손을 넣고 검게 빛나는 바다를 바라본다.
우주의 가장자리 같다.
쇼코는 해변에 서 있으면 이 세상의 변두리에 선 느낌이 든다고 말했었다.

교정 제안만 보려면 다음과 같이 명령합니다.

cat your-text | hanspell-cli 2>&1 > /dev/null | grep '->'

클립보드에 복사된 문장을 교정하려면, macOS 사용자는 pbpaste, X 윈도 시스템 사용자는 xclip -o, 마이크로소프트 윈도우 사용자는 powershell.exe Get-Clipboard 명령을 이용할 수 있습니다.

pbpaste | hanspell-cli

~/.hanspell-ignore 파일에 교정 대상에서 제외할 문자열을 글로브 패턴으로 지정할 수 있습니다. ‘그로떼스끄’로 시작하는 문자열과 ‘빠이’를 교정 대상에서 제외하려면 다음과 같이 설정하세요.

그로떼스끄*
빠이

~/.hanspell-history 파일에는 맞춤법 교정 내용이 기록됩니다.

내노라하는 -> 내로라하는
전세계 -> 전 세계
그 뿐만 -> 그뿐만
때 마다 -> 때마다
했는 지 -> 했는지
...

아래는 사용자가 자주 틀리는 맞춤법을 빈도순으로 보여주는 셸 스크립트입니다. 리눅스나 macOS 환경에서만 작동합니다.

$ sort < ~/.hanspell-history | uniq -c | sort -nr | head -n 5
 17 모래속에 -> 모래 속에
 13 그 뿐만 -> 그뿐만
 13 했는 지 -> 했는지
 13 한바퀴 -> 한 바퀴
 7 내노라하는 -> 내로라하는

마이크로소프트 윈도우 환경

hanspell은 UTF-8 인코딩으로 저장된 파일만 인식합니다.

type your-text.utf-8 | hanspell-cli

홈 디렉터리의 .hanspell-ignore 파일 또한 UTF-8 인코딩으로 저장해야 합니다.

라이브러리 사용법

Node.js 프로젝트에서 hanspell 라이브러리를 사용하려면 다음을 실행하세요.

cd my-project && npm install --save hanspell

hanspell 라이브러리에는 spellCheckByDAUM 함수와 spellCheckByNAVER 함수가 있습니다. 다음은 사용 예입니다.

// hanspell-example.js
const hanspell = require('hanspell');
const sentence = '리랜드는 얼굴 골격이 굵은게,';
const end = function () {
 console.log('// check ends');
};
const error = function (err) {
 console.error('// error: ' + err);
};
hanspell.spellCheckByDAUM(sentence, 6000, console.log, end, error);
hanspell.spellCheckByNAVER(sentence, 6000, console.log, end, error);

다음과 비슷한 결과가 예상됩니다.

[
 {
 type: 'space',
 token: '굵은게,',
 suggestions: [ '굵은 게,' ],
 context: '얼굴 골격이 굵은게,'
 }
]
// check ends
[
 {
 token: '리랜드는',
 suggestions: [ '이랜드는' ],
 info: '맞춤법 오류입니다.'
 },
 {
 token: '굵은게,',
 suggestions: [ '굵은 게,' ],
 info: '띄어쓰기 오류입니다.'
 }
]
// check ends

두 함수의 호출 결과는 모두 token, suggestions, info 속성을 가집니다. spellCheckByDAUMtype, context 속성을 추가로 가집니다.

TypeScript 사용자는 별도 설정 없이 타입이 자동으로 인식됩니다.

import { spellCheckByNAVER, NaverTypo } from 'hanspell';
spellCheckByNAVER(
 '안뇽하세요.',
 6000,
 (data: NaverTypo[]) => console.log(data),
 () => console.log('// check ends'),
 (err) => console.error(err),
);

네이버 검사기는 교정 후보를 항상 하나만 제공하고, info는 오류 분류(맞춤법/ 띄어쓰기/표준어 추천)만 알려 줍니다.

위의 예시에서 sentence가 250 단어 또는 1000자를 넘으면, 인자로 전달된 console.log는 여러 번 호출되지만 end는 마지막에 한 번만 호출됩니다.

라이선스 고지

이 프로그램의 소스 코드는 MIT 라이선스를 따릅니다. 다음과 네이버의 맞춤법 웹 서비스는 각 제공사의 이용 약관에 따라 사용해야 합니다.

About

(주)다음과 네이버(주)의 웹 서비스를 이용한 한글 맞춤법 검사기.

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /