@makecode/mecab-analyzer
v1.0.0
Published
A MeCab-based morphological analyzer for Node.js
Downloads
64
Maintainers
Readme
MeCab Analyzer
mecab-analyzer
는 MeCab 기반의 형태소 분석기 라이브러리로, 한국어 텍스트를 분석하여 품사, 형태소, 명사 등 다양한 정보를 제공합니다. 이 라이브러리는 Node.js 환경에서 쉽게 형태소 분석을 할 수 있도록 만들어졌으며, MeCab 실행 파일을 이용하여 텍스트를 분석합니다.
설치 방법
npm install @makecode/mecab-analyzer
MECAB_PATH
환경 변수를 통해 MeCab 실행 파일의 경로를 지정할 수 있습니다. 기본적으로는 node_modules/@makecode/mecab-analyzer/bin/mecab
경로를 사용합니다.
사용 방법
mecab-analyzer
라이브러리는 다음과 같은 네 가지 주요 함수를 제공합니다:
pos(text: string): string[]
— 입력된 텍스트의 품사(POS) 분석 결과를 반환합니다.morphs(text: string): string[]
— 입력된 텍스트의 형태소(Morphs) 분석 결과를 반환합니다.nouns(text: string): string[]
— 입력된 텍스트에서 명사(Nouns)만을 추출하여 반환합니다.all(text: string): string[][]
— 입력된 텍스트에 대한 전체 분석 결과를 반환합니다.
예제 코드
아래는 각 함수의 사용 예시입니다.
import mecabAnalyzer from '@makecode/mecab-analyzer';
const text = '오늘은 날씨가 맑습니다.';
// 품사 분석 (POS)
const posResult = mecabAnalyzer.pos(text);
console.log('POS 분석 결과:', posResult);
// 출력 예시: ['오늘,NNG', '은,JX', '날씨,NNG', '가,JKS', '맑,VA', '습니다,EF']
// 형태소 분석 (Morphs)
const morphsResult = mecabAnalyzer.morphs(text);
console.log('형태소 분석 결과:', morphsResult);
// 출력 예시: ['오늘', '은', '날씨', '가', '맑', '습니다']
// 명사 추출 (Nouns)
const nounsResult = mecabAnalyzer.nouns(text);
console.log('명사 추출 결과:', nounsResult);
// 출력 예시: ['오늘', '날씨']
// 전체 분석 결과 (All)
const allResult = mecabAnalyzer.all(text);
console.log('전체 분석 결과:', allResult);
// 출력 예시: [['오늘', 'NNG', '*', '*', '*', 'T'], ['은', 'JX', '*', '*', '*', 'T'], ...]
함수 설명
pos(text: string): string[]
입력된 텍스트에 대해 품사(POS) 분석을 수행합니다. 결과는 각 단어와 해당 품사가 연결된 문자열 배열로 반환됩니다. 예를 들어, '오늘,NNG'
와 같이 반환됩니다.
morphs(text: string): string[]
입력된 텍스트를 형태소 단위로 분석하여 형태소의 배열을 반환합니다. 각 단어의 최소 단위로 나누어줍니다.
nouns(text: string): string[]
입력된 텍스트에서 명사(NNG, NNP)만을 추출하여 배열로 반환합니다. 이 함수는 특정 명사만 필요할 때 유용합니다.
all(text: string): string[][]
입력된 텍스트의 전체 분석 결과를 2차원 배열 형태로 반환합니다. 각 배열은 단어와 해당 품사의 모든 정보가 포함된 배열로, 보다 상세한 정보가 필요할 때 사용할 수 있습니다.
analyzeWithExclusions(text: string, options: { analysisType?: string, pattern?: RegExp }): string[] | string[][]
특정 패턴을 제외하고 분석을 수행합니다. 예를 들어, URL과 같은 특정 패턴을 제외하고 텍스트를 분석하고 싶을 때 유용합니다. analysisType
은 분석 타입 (morphs
, pos
, all
)을 지정하며, pattern
은 제외하고자 하는 정규 표현식 패턴을 지정합니다.
환경 변수 설정
- MECAB_PATH: MeCab 실행 파일의 경로를 지정할 수 있습니다. 지정하지 않는 경우 기본적으로
node_modules
내부에 포함된 MeCab을 사용합니다.
export MECAB_PATH=/usr/local/bin/mecab
CommonJS 지원
mecab-analyzer
는 CommonJS 환경에서도 사용할 수 있습니다.
const mecabAnalyzer = require('@makecode/mecab-analyzer');
const text = '오늘은 날씨가 맑습니다.';
const nouns = mecabAnalyzer.nouns(text);
console.log('명사 추출 결과:', nouns);