Skip to main content

A Korean Keywords Extractor with Syntactic Analysis

Project description

kokex

GitHub GitHub Workflow Status Documentation Status

한국어 문서 집합에서 키워드를 추출하는 라이브러리입니다. 구문분석을 통해 사전 없이도 고유명사, 복합명사, 신조어에 강건한 키워드 추출기를 만들고자 합니다.

간단한 사용예는 아래와 같습니다.

import kokex

keywords = kokex.keywords([
    '첫 번째 문서입니다. 여러 문장을 포함할 수 있습니다.',
    '두 번째 문서입니다. 여러 문서를 포함할 수 있습니다.'
])

print(keywords)  # {'번째': 2, '문서': 3, '문장': 1, '포함': 2}

더 자세한 사용법은 문서 를 참고해주세요.

설치

설치는 pip 를 이용하는 방법과 docker 를 이용하는 방법이 있습니다.

pip

pip install kokex

이 라이브러리는 konlpy 와 Mecab 형태소 분석기에 의존성이 있습니다. konlpy 의 설치 안내 에 따라 Mecab 을 설치해주시기 바랍니다. 예를 들어, Mac 환경에서는 아래의 명령을 입력하시기 바랍니다.

$ bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)

docker

도커를 사용한다면, 모든 의존성이 설치된 상태로 로컬 API 서버를 구동할 수 있습니다.

export KOKEX_PORT=80
export KOKEX_VERSION=0.0.11

docker pull kokex/server:${KOKEX_VERSION}
docker run -d -p ${KOKEX_PORT}:8081 --name kokex-server --rm kokex/server:${KOKEX_VERSION}

서버를 종료할 때는 docker stop kokex-server 를 입력하세요.

서버를 실행하면 아래와 같이 http 요청을 처리할 수 있습니다.

curl -X POST \
  http://localhost/keywords \
  -d '{
	"docs": [
		"첫 번째 문서입니다. 여러 문장을 포함할 수 있습니다.", 
		"두 번째 문서입니다. 여러 문서를 포함할 수 있습니다."
	]
}'

그리고 http://localhost/docs 에 접속하면 API 문서를 확인할 수 있습니다.

참여

모든 논의는 이슈를 통해 이루어지면 좋겠습니다.

API 사용자

kokex api 를 사용하는 분들이라면 새로운 문장에 대한 분석 요청을 하실 수 있습니다. 테스트 문장과 함께 원하는 분석결과를 담아 이슈를 생성하실 수 있도록 템플릿(test_suggest)을 준비해두었으니 참고해주세요.

API 개발자

kokex api 개발에 관심이 있으시다면, 이슈를 생성 후 논의를 진행하고, 수정한 사항을 PR 해주시면 됩니다. 소스 코드를 수정하신다면, isort 와 black 으로 포맷팅을 해주시기 바랍니다. 저장소 복제 후 아래와 같이 입력하시면 이를 자동으로 체크할 수 있습니다.

pip install -r requirements.txt
pre-commit install

그리고 bin/run_test.sh 를 실행하여 기존 테스트 문장의 분석 결과를 해치지 않도록 해야합니다. 테스트 문장은, test 디렉토리의 test_{API_NAME}.py 파일에서 찾아보실 수 있습니다.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kokex-0.0.11.tar.gz (13.5 kB view hashes)

Uploaded Source

Built Distribution

kokex-0.0.11-py3-none-any.whl (12.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page