설치 • 제거 • Chatette를 사용하는 방법은 무엇입니까? • Chatette 대 Chatito ? • 개발 • 크레딧
Chatette 는 템플릿 파일이 제공된 Rasa NLU 에 대한 교육 데이터 세트를 생성하는 Python 프로그램입니다. 큰 어려움 없이 자연어 이해 작업을 위한 예제 데이터의 대규모 데이터 세트를 만들고 싶다면 Chatette가 적합한 프로젝트입니다.
특히 Chatette는 템플릿을 정의하여 많은 수의 문장을 생성한 다음 Rasa NLU 의 입력 형식으로 저장할 수 있는 DSL (도메인 특정 언어)을 구현합니다.
사용된 DSL은 Rodrigo Pimentel이 만든 뛰어난 프로젝트 Chatito 의 거의 상위 집합입니다. ( 참고: DSL은 실제로 가능한 모든 어댑터에 대한 것이 아니라 Rasa NLU에 대한 Chatito v2.1.x의 상위 집합입니다. )
대화형 모드도 사용할 수 있습니다.
Chatette를 실행하려면 Python이 설치되어 있어야 합니다. Chatette는 Python 2.7 및 3.x(>= 3.4)에서 모두 작동합니다.
Chatette는 PyPI에서 사용할 수 있으므로 pip
사용하여 설치할 수 있습니다.
pip install chatette
또는 GitHub 저장소를 복제하고 요구 사항을 설치할 수 있습니다.
pip install -r requirements/common.txt
그런 다음 Chatette/chatette/
디렉터리에서 다음 명령을 실행하여 pip를 사용하여 프로젝트를 편집 가능한 패키지로 설치할 수 있습니다.
pip install -e .
그런 다음 복제된 디렉터리에서 아래 명령을 사용하여 모듈을 실행할 수 있습니다.
pip를 사용하여 Chatette를 제거할 수 있습니다.
pip uninstall chatette
Chatette가 사용하고 생성하는 데이터는 파일에서 로드되고 파일에 저장됩니다. 따라서 다음을 갖게 됩니다.
템플릿이 포함된 하나 이상의 입력 파일입니다 . 특정 파일 확장자가 필요하지 않습니다. 해당 템플릿을 만드는 DSL 의 구문은 위키에 설명되어 있습니다.
Chatette 에 의해 생성되고 생성된 예제를 포함하는 하나 이상의 출력 파일입니다 . 해당 파일은 JSON (기본값) 또는 Markdown 으로 형식화할 수 있으며 Rasa NLU 에 직접 공급할 수 있습니다. JSONL 형식을 사용하는 것도 가능합니다.
Chatette 가 설치되고 템플릿 파일을 생성한 후 다음 명령을 실행합니다.
python -m chatette < path_to_template >
여기서 python
은 Python 인터프리터입니다(일부 운영 체제에서는 python3
Python 3.x 인터프리터의 별칭으로 사용함).
다음과 같이 출력 파일의 이름을 지정할 수 있습니다.
python -m chatette < path_to_template > -o < output_directory_path >
<output_directory_path>
는 스크립트가 실행되는 디렉터리를 기준으로 지정됩니다. 그런 다음 출력 파일은 <output_directory_path>/train
및 <output_directory_path>/test
에 번호가 매겨진 .json
파일로 저장됩니다. 출력 디렉터리의 경로를 지정하지 않은 경우 기본 경로는 output
입니다.
다른 프로그램 인수는 위키에 설명되어 있습니다.
요약: 주요 판매 포인트 : Chatette를 사용하면 대규모 프로젝트를 처리하는 것이 더 쉽고 대부분의 Chatito 프로젝트를 수정 없이 Chatette 프로젝트 로 변환할 수 있습니다 .
완벽하게 타당한 질문은 다음과 같습니다.
Chatito가 이미 동일한 목적을 수행하고 있는데 Chatette가 존재하는 이유는 무엇입니까?
두 프로젝트는 실제로 서로 다른 목표를 가지고 있습니다.
Chatito는 매우 읽기 쉬운 일반적이지만 강력한 DSL 을 목표로 합니다. 소규모 프로젝트에는 전혀 문제가 없지만 프로젝트가 커지면 DSL 의 단순성이 부담이 될 수 있습니다. 즉, 템플릿 파일이 그 안에서 길을 잃을 정도로 너무 커집니다.
Chatette는 대규모 프로젝트를 관리할 수 있도록 보다 복잡한 DSL을 정의하고 가능한 한 Chatito 와의 상호 운용성을 유지하려고 노력합니다. 다음은 Chatette 에는 있고 Chatito 에는 없는 기능의 대략적인 목록입니다.
Chatette 의 DSL은 Chatito 의 DSL의 상위 집합이므로 Chatito 에 사용되는 입력 파일은 대부분의 경우 Chatette 에서 완벽하게 사용할 수 있습니다(그 반대는 아님). 따라서 이전에 Chatito를 사용했다면 Chatette 사용을 쉽게 시작할 수 있습니다.
예를 들어, Chatito 데이터는 다음과 같습니다.
// This template defines different ways to ask for the location of toilets (Chatito version)
%[ask_toilet]('training': '3')
~[sorry?] ~[tell me] where the @[toilet#singular] is ~[please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are ~[please?]?
~[sorry]
sorry
Sorry
excuse me
Excuse me
~[tell me]
~[can you?] tell me
~[can you?] show me
~[can you]
can you
could you
would you
~[please]
please
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
Chatette 에 대한 입력으로 직접 제공될 수 있지만 이 Chatette 템플릿은 동일한 결과를 생성합니다.
// This template defines different ways to ask for the location of toilets (Chatette version)
%[&ask_toilet](3)
~[sorry?] ~[tell me] where the @[toilet#singular] is [please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are [please?]?
~[sorry]
sorry
excuse me
~[tell me]
~[can you?] [tell|show] me
~[can you]
[can|could|would] you
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
Chatito 버전은 읽기가 더 쉽지만 Chatette 버전은 더 짧기 때문에 많은 템플릿과 잠재적인 반복을 처리할 때 매우 유용할 수 있습니다.
항상 기계 학습과 마찬가지로 데이터가 너무 많으면 과적합으로 인해 모델 성능이 저하될 수 있다는 점에 유의하세요. 이 스크립트를 사용하여 수천 개의 예제를 생성할 수 있지만 기계 학습 작업에는 권장되지 않습니다.
Chatette는 Chatito 의 이름을 따서 명명되었습니다. 프랑스어의 -ette는 스페인어의 -ita 또는 -ito 로 번역될 수 있습니다. Chatette 의 마지막 e는 발음되지 않습니다("note"의 경우처럼).
개발자의 경우 리포지토리를 복제하고 개발 요구 사항을 설치할 수 있습니다: pip install -r requirements/develop.txt
그런 다음 편집 가능한 모듈을 설치합니다: pip install -e <path-to-chatette-module>
pylint 실행: tox -e pylint
pycodestyle 실행: tox -e pycodestyle
pytest 실행: tox -e pytest
면책조항: 이것은 제가 돈을 받지 않는 부가 프로젝트입니다. 제가 연중무휴 24시간 작업할 것이라고 기대하지 마세요.
그들에게 정말 감사드립니다!