2013-08-26 4 views
2

그래서 내 질문은 어떻게 사람들과 메소드 호출의 순서가 무엇을 할 때 사용할 방법을 알고 있다는 것입니다 이제이 코드방법은 파이썬에서

entities = nltk.chunk.ne_chunk(tagged) 

nltk하지만 가서 보았다? 내가 본

또 다른 이상한 코드는 어떻게 우리가 내가 두 번 메소드를 호출 할 때 &는 어떻게 알 수 있습니까 두 번 여기에 단어 메서드를 호출하는 이유는 무엇 .words? 다음 .words를 해석하는 것이 지금

nltk.corpus.words.words('en') 

을했다?

방금 ​​"Udacity - Intro. to CS (Python 사용)"을 완료했지만이 "nltk"가 너무 혼란스러워지고 있습니다. 제발 도와주세요, 며칠 이래로이 모든 논리를 얻으려고 애 쓰고 있습니다.

+7

'어떤 방법을 사용해야하는지 사람들이 어떻게 알 수 있습니까? '문서를 확인하고 관련 유형을 이해하고 코드를 작성하고 몇 번 실패하십시오. 그런 다음 lib를 사용하는 방법을 배우게됩니다. – Simon

+4

'nltk.corpus.words.words ('en')는 누군가의 이름이 잘못되어있는 것처럼 들립니다. 첫 번째'단어'는 메서드 호출이 아닙니다. 첫 번째가 아닌 두 번째 괄호 뒤에 유의하십시오. 변수 또는 모듈 일 수 있습니다. – thegrinner

+1

가난한 이름 지정이 아닙니다. 이름이 매우 형편 없습니다. – GLES

답변

8

words을 두 번 호출하지 않습니다. words 메서드를 words 모듈이라고 부릅니다. 그것은 모두 네임 스페이스와 모듈에 관한 것입니다. Python modules에 대해 더 자세히 읽어보십시오.

:

+0

해당 장을 읽었습니다. 따라서 6.4 절에 따르면 nltk/corpus/words/words.py는 nltk.corpus.words.words로 호출/액세스되고 있습니다. 맞습니까? 그래서 나는이 디렉토리 구조와 각 서브 디렉토리/디렉토리와 모듈의 모듈을 알아야만 액세스 할 수있다. – vinita

+0

No. 모듈 nltk/corpus/words는 "단어"라는 메서드를 (잘못) 정의했습니다. 다음과 같이 네임 스페이스를 사용하여 재생할 수 있습니다. import nltk.corpus.words를 words_module로 사용하고 그 후에는 words_module.words (...)로 간단하게 "words"메서드를 호출하십시오. –

+0

이것은 내가 시도한 것입니다 : - 1. import nltk. Ncw ("ImportError : No modules named words"), 3.] import nltk.corpus로 nltk.corpus.words.words를 가져 오십시오.words as ncw ("ImportError : No modules named words") 왜 이런 다른 행동을합니까? – vinita

3

파이썬의 . 문자뿐만 아니라 방법에 액세스하기위한 것입니다. 그것은 어떤 객체에서 속성 접근을 나타냅니다. 정확히 그 의미는 그 대상이 무엇인지에 달려 있습니다.

예에서 nltk.chunknltk.corpus.words은 모두 모듈 이름입니다. nltk은 다른 모듈을 포함 할 수있는 특별한 종류의 모듈 인 package입니다. 따라서 nltk.corpus입니다. (그리고 실제로, nltk.chunk 또한 패키지입니다,하지만 당신은 일반 모듈로 사용하기보다는 그 안에서 다른 모듈에 접근하고 있습니다.) nltk.chunk.ne_chunk(tagged)에서

, 점은 다음의 nltk 모듈에 chunk 속성에 액세스 nltk.chunk 모듈 내의 ne_chunk 속성 그 일은 우연히 발생하는 함수입니다.

nltk.corpus.words.words('en')은, 제 3 점은 nltk.corpus.words 모듈 내의 words 특성을 보인다.

+0

'.' * 사용하는 유일한 방법 * 단순히 호출 속성 인 속성 액세스.. – chepner

+1

(Cud)을 유 저 understnd 단계적 1] nltk.corpus 수입 단어에서 수입 NLTK 2. 3.] nltk.corpus.words 4.] nltk.corpus.words.words > 질문은 nltk.corpus.words를 사용할시기와 nlt.corpus.words.words를 사용할 때를 어떻게 알 수 있습니까? 내가 외워야 할까? 코더들이 그런 것들을 암기하나요? 아니, 그렇다면 어떻게 사람들이 이러한 준비에 대해 (& 어디에서), x.foo.bar.blah 또는 x.blah.foo.hush가되어야하는지 여부를 알 수 있습니까? Pls, Im 완전히 혼돈했습니다. – vinita

+0

@vinita : 당신은'nltk.corpus.words.words '에'words'가 두 번 있다는 사실 때문에 버림 받고 있다고 생각합니다. 이것은 도서관 설계자가 설계 한 결정입니다. (그리고 다른 의견 작성자들이 말했듯이 나쁜 설계 일 수 있습니다.) 주어진 것의 깊이에 관한 규칙은 문제의 모듈과 패키지의 디자인에 달려 있습니다. 위치를 암기해야 할 필요가 있다고 생각합니다. 선택 사항입니다. 함수의 정확한 위치가 기억 나지 않는다면 언제든지 문서에서 새로 고침을 확인할 수 있습니다. 반복해서 사용하는 것만으로 자주 사용하는 물건의 위치를 ​​배우게됩니다. – Blckknght

관련 문제