UNPKG

@makecode/mecab-analyzer

Version:

A MeCab-based morphological analyzer for Node.js

93 lines (59 loc) 4.15 kB
# MeCab Analyzer `mecab-analyzer`는 [MeCab](https://taku910.github.io/mecab/) 기반의 형태소 분석기 라이브러리로, 한국어 텍스트를 분석하여 품사, 형태소, 명사 등 다양한 정보를 제공합니다. 이 라이브러리는 Node.js 환경에서 쉽게 형태소 분석을 할 수 있도록 만들어졌으며, MeCab 실행 파일을 이용하여 텍스트를 분석합니다. ## 설치 방법 ```bash 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[][]` — 입력된 텍스트에 대한 전체 분석 결과를 반환합니다. ### 예제 코드 아래는 각 함수의 사용 예시입니다. ```typescript 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을 사용합니다. ```bash export MECAB_PATH=/usr/local/bin/mecab ``` ## CommonJS 지원 `mecab-analyzer`는 CommonJS 환경에서도 사용할 수 있습니다. ```javascript const mecabAnalyzer = require('@makecode/mecab-analyzer'); const text = '오늘은 날씨가 맑습니다.'; const nouns = mecabAnalyzer.nouns(text); console.log('명사 추출 결과:', nouns); ```