2016-12-29 3 views
1

나는 새로운 사람입니다.하지만 나는 비장의 플레이 북을 통해 파이썬 터미널 내부에서 몇 가지 명령을 실행하려고합니다. 특히, 나는 코퍼스를 다운로드하고 싶다. 파이썬 터미널에서 실행 가능한 명령을 통해 명령을 실행하십시오.

$python 
>import nltk 
>nltk.download 
> ~ d (download) 
> ~ book 
> ~ q (quit) 
>quit() 

현재, 내 각본 파일은 requirements.txt을 통해 NLTK 설치하는 VIRTUALENV를 생성하지만 수동으로 다운로드하지 않고 특정 NLTK 기능을 얻을하는 방법을 모르겠어요.

내 검색에서이 행을 건너 뛰었습니다. python -m nltk.downloader all은 내 프로그램을 만족하지만 불필요한 많은 것들이 다운로드되어 메모리를 차지합니다. 그러나 그 사이에, 나는 실행으로 그것을 밖으로 시도 않았다

- name: Get the nltk corpus 
    shell: "python -m nltk.downloader all" 

하지만이 메시지와 함께 오류를 범 :

TASK [Get the nltk corpus]***************************************************** 
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": "python -m nltk.downloader book", "delta": "0:00:00.016227", "end": "2016-12-29 20:06:09.156953", "failed": true, "rc": 1, "start": "2016-12-29 20:06:09.140726", "stderr": "/usr/bin/python: No module named nltk", "stdout": "", "stdout_lines": [], "warnings": []} 

중 하나 위의 코드를 작동하게하는 방법에 대한 어떤 제안이 있는가, 또는 특정 nltk 기능을 유용하게 사용하여 내 목표를 달성하는 또 다른 방법은 무엇입니까?


UPDATE는 :

그냥 좀 명확하게하기 위해, 나는 ansible 플레이 북의 판매 이외의 파이썬 쉘에서 정상적으로 동작 할 명령을 실행하기 위해 노력하고있어.

예를 들어, 라인 nltk.download("book")은 파이썬 터미널 내부에서 정확하게 작동합니다. 그러나 나는 터미널에 수동으로 들어가지 않고, 그리고 무책임한 플레이 북의 작업을 통해 이것을 실행할 필요가있다.

나는 이것과 비슷한 것을 시도해 보았지만 그것이 컴파일되었지만 필자가 필요로 할 때 실제로 책 코퍼스를 다운로드하지는 않습니다. 개별 모듈을 다운로드 할 수 있습니다

- name: Get the "book" nltk corpus 
    shell: "/usr/local/venv/bin/python -m nltk.downloader book" 

답변

2

Documentationsource code 힌트 : 패키지의 패키지 식별자를 제공

개별 패키지는 하나의 인자로 다운로드() 함수를 호출하여 다운로드 할 수 있습니다를이해야 book이 예에서 패키지 (내가 NLTK에 익숙하지 않다) 인 경우

을 다운로드 할 시도 :

를 는 POS 술래 같은 것들에 대한 말뭉치 및 훈련 모델 :
- name: Get the nltk corpus 
    shell: "python -m nltk.downloader book" 
+0

제가 시도해 볼만한 훌륭한 제안입니다.하지만 그 진술을 수정할 수 있기 전에, 나는 그것을 실행할 수 있어야합니다. 불가능한 게임 북의 코드는 컴파일되지 않습니다. (위의 오류 메시지를 편집하고 추가했습니다.) –

+0

pip 패키지를 virtualenv에 설치하는 경우,'chdir' ('shell' 모듈에 대한 매개 변수가 있음)을 잊어 버리지 말고 로컬 파이썬 인터프리터를 실행하고 기본 파이썬은 실행하지 마십시오 . –

+0

그게 효과가! virtualenv에 명시 적으로 존재하는 파이썬 경로를 실행해야했습니다./path/in/venv/to **/** python ** -m nltk.downloader book 대단히 고마워요! –

1

명령 nltk.download()데이터를 NLTK 다운로드 할 수 있습니다. 이를 사용하려면 이미 nltk 코드가 설치되어 있어야합니다. 즉, import nltk을 성공적으로 실행할 수 있어야합니다. 사용할 수있는 nltk 모듈을 사용하여 virtualenv에서 실행 중이지만 그렇지 않으면 오류 메시지에 다음과 같이 표시됩니다. /usr/bin/python: No module named nltk. 그것이 진짜 문제라면, 먼저 그것을 분류하고 (그리고/또는 질문을 수정해야합니다.) import nltk 문이 성공, 당신은 브라운 코퍼스에 대한 코퍼스와 (당신의 명시된 목표), 예를 들어, nltk.import("brown")을 다운로드 할 수 있도록 파이썬을 시작할 수 있습니다 가정

. 물론 이것은 import nltk 이후에 실행해야합니다.) NLTK 서적에서 언급 된 모든 자료를 다운로드하려면 nltk.import("book")을 사용하십시오.

+0

성공적으로 nltk을 다운로드했으며'nltk'을 '가져올 수 있습니다. 그것은 제가 질문에 언급 한 문제가 아니 었습니다. 질문은 가능한 스크립트에서 이것을 자동화하는 방법이었습니다. 솔루션에서와 마찬가지로 코드가 될 것입니다. –

+0

파이썬 세션에서'nltk.download ("brown")'을 실행하려고 시도 했습니까? 요컨대, 이렇게하면 대화 형 GUI 팝업에 응답을 제공 할 필요가 없습니다. – alexis

+0

이것은 파이썬 세션에서 잘 작동하지만 내 목표는이 문장을 수동으로 파이썬 세션을 열고 거기서 실행하지 않고 실행시키는 것이다. 나는 파이썬 세션을 열고 그것을 실행하고 그 파이썬 세션을 빠져 나가기를 원한다. –