파이토치에 기여하기 - Hunspell 설치 및 사용

글을 쓰게 된 이유

2022 오픈소스 컨트리뷰션 아카데미의 ‘파이토치 튜토리얼 번역’ 팀에서 활동하였습니다. 문서를 번역하거나, 기존에 번역된 문서들에 있는 오타를 찾기 위해 Hunspell을 사용해보니 편리한 점이 많았습니다. 그래서 OS별로 설치 및 사용법을 간단하게 정리해보았습니다.

Hunspell 소개

Hunspell 은 Libre Office, Mozilla firefox, Google Chrome등에서 사용되는 맞춤법 검사기입니다.
자세한 내용은 http://hunspell.github.io/ Hunspell 소개 페이지와 GitHub - spellcheck-ko/hunspell-dict-ko: Korean spellchecking dictionary for Hunspell Hunspell 한국어 사전 레포지토리를 참고해주세요.

:record_button: Windows용

방법 1) windows에서 wsl 설치하여 hunspell 사용(권장)

WSL 설치 | Microsoft Learn 참고

powershell terminal open

wsl --install

wsl 설치 후 PC를 다시 시작하면 wsl ubuntu를 자동으로 설치 하단 Linux 설치 방법 참고 hunspell 설치

방법 2) sigil을 활용한 hunspell 사용

  1. sigil 다운로드 Download Sigil - Sigil-Ebook 참고

  2. sigil만 설치시 영문만 적용되어있는데 한국어도 적용하기 위한 ko-aff-dic-0.7.92.zip 다운로드

Releases · spellcheck-ko/hunspell-dict-ko · GitHub 참고 3. sigil에 한국어도 등록하기 위해 (ex → C:\Program Files\Sigil\hunspell_dictionaries) 폴더에 다운받았던 모음집 추가하기 4. sigil 실행시 편집 → 기본설정 → 맞춤법 검사 사전에 / 기본 언어 사전 : 한국어 , 2차 언어사전 영어-미국 으로 변경

Untitled

  1. txt xhtml을 지원하므로 변환 후 사용!

:record_button: Linux용(Ubuntu, WSL)

https://zoomadmin.com/HowToInstall/UbuntuPackage/hunspell 참고

sudo apt-get update -y
sudo apt-get install -y hunspell

:record_button: Mac용

Homebrew 설치

macOS 용 패키지 관리자 — Homebrew 참고

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Hunspell 설치

brew 업데이트 및 업그레이드

brew update
brew upgrade

hunspell 설치

brew install hunspell

한국어 사전 파일 추가

위 링크에서 ko-aff-dic 파일 받은 후 압축 해제

스크린샷_2022-08-15_오후_7.44.20
압축 해제 후 나온 .aff 파일과 .dic 파일의 이름을 ko_KR로 변경

스크린샷_2022-08-15_오후_7.45.56

스크린샷_2022-08-15_오후_7.46.28

ko_KR.aff, ko_KR.dic 파일을 홈/Library/Spelling 폴더로 이동

스크린샷_2022-08-15_오후_7.49.15

추가 팁: Library 폴더가 안보이는 경우 Shift + command + . 키를 눌러 숨김 폴더를 보이게 하면 나옵니다.

스크린샷_2022-08-15_오후_7.50.35

설치 확인

hunspell -v

스크린샷_2022-08-15_오후_7.51.26

hunspell의 버전이 표시되면 설치 완료.

:record_button: Hunspell 사용법

모든 명령어 보기

스크린샷_2022-08-15_오후_7.41.25

hunspell -h

사용 방법

  • 기본 사용법
hunspell -l "검사할 파일"

해당 파일속 오타를 출력한다.

  • 정렬, 중복 제거, 저장
hunspell -l "검사할 파일" | sort | uniq > typos.txt

sort : 알파벳 순으로 정렬

uniq : 해당하는 오타를 한 번만 출력

“> 저장 파일명": 해당 이름으로 저장

  • 예시
    스크린샷_2022-08-15_오후_8.49.21
    해당 폴더 속 .py 확장자를 가진 모든 파일을 검사, 정렬, 중복 제거, typos.txt 파일로 저장
    스크린샷_2022-08-15_오후_8.50.07

추가 명령어

grep

리눅스에서 특정 파일 속 문자열을 찾는 명령어

# 특정 문자열 찾기
grep '찾을문자' 파일명

# 여러 파일에서 특정 문자열 찾기
grep '찾을문자' 파일명1 파일명2

응용 사용

# 특정 파일에서 문자열이 포함된 행을 찾기
grep '^[ab]' 파일명

# 특정 파일에서 a로 시작하는 모든 단어 찾기
grep 'a*' 파일명

# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어 찾기
grep 'a...z' 파일명

# 특정 파일에서 a, b, c로 시작하는 모두 찾기
grep [a-c] 파일명

# 특정 파일에서 apple 또는 Apple로 시작하는 단어 모두 찾기
grep [aA]pple 파일명

# 특정 파일에서 a나 b로 시작되는 모든 행을 찾기
grep '^[ab]' 파일명

# 특정 파일에서 여러개 문자열 찾기
cat 파일명 | grep 'Apple' | grep 'Banana'

옵션

-c : 일치하는 행의 수를 출력한다.

-i : 대소문자를 구별하지 않는다.

-v : 일치하지 않는 행만 출력한다.

-n : 포함된 행의 번호를 함께 출력한다.

-l : 패턴이 포함된 파일의 이름을 출력한다.

-w : 단어와 일치하는 행만 출력한다.

-x : 라인과 일치하는 행만 출력한다.

-r : 하위 디렉토리를 포함한 모든 파일에서 검색한다.

-m 숫자 : 최대로 표시될 수 있는 결과를 제한한다.

-E : 찾을 패턴을 정규 표현식으로 찾는다.

-F : 찾을 패턴을 문자열로 찾는다.

hunspell 과 동시 사용 예시

grep '#*' ./*.py > test.txt ; hunspell -l test.txt > typos.txt
3개의 좋아요

우와, 꼼꼼하게 잘 정리해주셔서 감사합니다!!!