티스토리 뷰
kiwipiepy(키위파이파이) 란 ?
kiwipiepy(키위파이파이)는 한국어 형태소 분석기(Korean tokenizer)**로
형태소 단위로 문장을 나누고 품사를 태깅하는 데 사용됩니다.
📌 특징
항목 설명
| 이름 | Kiwi Pie Py = Kiwi 형태소 분석기의 Python 버전 |
| 제작 | ETRI(한국전자통신연구원) 기반 open-korean-text |
| 언어 | Python 3.x |
| 라이선스 | MIT (자유롭게 사용 가능) |
| 한국어 품사 태깅 | 가능 (Noun, Verb 등) |
| 정규화 | 있음 (예: "ㅋㅋㅋㅋ" → "ㅋ") |
| 속도 | 중간 (Mecab보단 느림, Konlpy보단 빠름) |
✅ 설치 방법
▶️ pip 설치 (가장 간단)
$ pip install kiwipiepy
Windows / macOS / Linux 모두 지원됨
Python 3.7 이상 권장
✅ 기본 사용법 예제
| from kiwipiepy import Kiwi kiwi = Kiwi() # 분석할 문장 text = "안녕하세요. 저는 인공지능을 공부하고 있습니다." # 형태소 분석 tokens = kiwi.tokenize(text) for token in tokens: print(token.form, token.tag, token.start, token.end) |
▶️ 결과 예시
| 안녕하 Verb 0 3 세요 Eomi 3 5 . Punctuation 5 6 저 Noun 7 8 는 Josa 8 9 ... |
✅ 주요 기능 정리
기능 설명 코드 예시
| 형태소 분석 | 단어+품사 | tokenize() |
| 문장 분리 | 문장 단위로 분할 | split_into_sents() |
| 정규화 | 표현 통일 (ㅋ,ㅠ 등) | 옵션 normalize_coda=True |
| 사용자 사전 추가 | 커스텀 단어 추가 | add_user_word() |
▶️ 문장 분리 예시
| sentences = kiwi.split_into_sents("오늘 날씨 좋다. 내일은 비가 온다.") for sent in sentences: print(sent.text) |
▶️ 사용자 사전 추가 예시
| kiwi.add_user_word("챗GPT", "Noun") kiwi.tokenize("나는 챗GPT를 사용한다.") |
✅ 활용 방안
분야 활용 예
| 🔍 텍스트 전처리 | 불용어 제거, 품사 기준 필터링 |
| 💬 감성 분석 | 명사/형용사만 추출 후 분석 |
| 🔎 검색엔진 | 형태소 기반 인덱싱 (Lucene 등과 연동) |
| 🤖 챗봇 | 의도 분석, 키워드 추출 |
| 🧠 LLM 사전 전처리 | Tokenizer 전에 문장/단어 분할 |
✅ kiwipiepy vs 다른 형태소 분석기
항목 kiwipiepy Mecab-ko Okt (konlpy)
| 속도 | 중간 | 매우 빠름 | 느림 |
| 정확도 | 높음 | 높음 | 보통 |
| 사용자 사전 | ✅ 지원 | ✅ 지원 | ❌ |
| 설치 난이도 | 매우 쉬움 | 어려움 (mac/Linux 수동 설치 필요) | 쉬움 |
| 품사 종류 | 풍부 | 제한적 | 제한적 |
✅ 함께 쓰면 좋은 오픈소스
도구 용도
| scikit-learn | 감성 분석, 키워드 분류 |
| wordcloud | 명사 기반 워드클라우드 시각화 |
| LangChain | 한국어 문서 RAG 시 사전 전처리 |
| fastapi | API 형태로 토크나이저 서비스화 |
| transformers | LLM 전에 형태소 기반 전처리 가능 |
✅ 고급 팁
🔹 명사만 추출
$ nouns = [t.form for t in kiwi.tokenize(text) if t.tag == "Noun"]
🔹 불용어 제거
| # 파이썬 stopwords = ["을", "를", "이", "가"] tokens = [t.form for t in kiwi.tokenize(text) if t.form not in stopwords] |
🔹 형태소 분석 서버로 만들기 (FastAPI)
| # 파이썬 from fastapi import FastAPI app = FastAPI() @app.post("/tokenize") def tokenize_text(data: dict): text = data["text"] tokens = [t.form for t in kiwi.tokenize(text)] return {"tokens": tokens} |
✅ 요약 정리
항목 내용
| 이름 | kiwipiepy (키위파이파이) |
| 역할 | 한국어 형태소 분석기 |
| 설치 | pip install kiwipiepy |
| 주요 기능 | 형태소 분석, 품사 태깅, 사용자 사전 |
| 특징 | 오픈소스, 정규화 지원, 쉬운 설치 |
| 함께 쓰면 좋은 도구 | LLM, LangChain, FastAPI, WordCloud |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Oracle
- AWS
- Chroma
- poetry
- open ai
- 코로나19
- CVE 취약점 점검
- K8s
- 오라클
- RAG
- kiwipiepy
- KoSimCSE
- MSA
- 쿠버네티스
- embedding
- n8n
- faiss
- Ai
- 테라폼
- 5.4.0.1072
- llm
- chunking
- 버쳐박스
- Weaviate
- VectorStore
- 임베딩
- MCP
- Qdrant
- RangChain
- llama
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함
