당신이 우리에게 주신 것을 실제로 말할 수는 없지만 단계별로 문제를 시도해 보셨습니까? 어떤 상황에서도 t.split('/')[1] == 'NP'
이 (가) 사실로 평가되는 것 같습니다. 정확히 f.split()
이
당신의 조건 당신은 나에게 보이는 당신이 준 출력의 작은 샘플에서, 실제로 올바른 있는지 확인 포함 무엇을보고
- 인쇄/디버그 : 그래서 당신은으로 시작해야 더 많은 것을 찾고 :
if t.split('/')[1].startswith('NP')
하지만 정말 말할 수 없습니다.
편집 :
좋아, 그 무엇에 f.split()
인쇄 다음 t
sicne 예외가해야하는 튜플과 튜플 나던은 split()
방법이 정말이다 첫번째 경우. 그래서 당신은 나를 궁금하게 만들었고 nltk
을 설치하고 '갈색'자료를 다운로드하고 코드를 시도했습니다.
import nltk
from nltk.corpus import brown
f = brown.raw('ca01')
print f.split()
['The/at', 'Fulton/np-tl', 'County/nn-tl', 'Grand/jj-tl', 'Jury/nn-tl', 'said/vbd', 'Friday/nr', 'an/at', 'investigation/nn', 'of/in', "Atlanta's/np$", 'recent/jj', 'primary/nn', 'election/nn', 'produced/vbd', '``/``', 'no/at', 'evidence/nn', "''/''", 'that/cs', 'any/dti', 'irregularities/nns', 'took/vbd', 'place/nn', './.', 'The/at', 'jury/nn', 'further/rbr', 'said/vbd', 'in/in', 'term-end/nn', 'presentments/nns', 'that/cs', 'the/at', 'City/nn-tl', 'Executive/jj-tl', 'Committee/nn-tl', ',/,', 'which/wdt', 'had/hvd', 'over-all/jj', 'charge/nn', 'of/in', 'the/at', 'election/nn', ',/,', '``/``', 'deserves/vbz', 'the/at', 'praise/nn', 'and/cc', 'thanks/nns', 'of/in', 'the/at', 'City/nn-tl' .....]
그래서 난 당신이 결과를 얻기 위해이 무슨 짓을했는지 없습니다 ideea 그러나 그것은 잘못되었습니다 : 이제 첫째, 나에게 내가 할 경우. 이제 그룹에서 볼 수 있듯이 두 번째 부분은 소문자로되어 코드가 실패한 것입니다. 당신이 그렇다면 :
w=[nltk.tag.str2tuple(t) for t in f.split() if t.split('/')[1].lower() == 'np']
이 당신에게 결과를 얻을 것이다 : 당신은 내가 요구 것과 같은 정보를 게시하기 전에 나중에 참조 할 수 있도록 한 번 확인을 위해 지금
[('September-October', 'NP'), ('Durwood', 'NP'), ('Pye', 'NP'), ('Ivan', 'NP'), ('Allen', 'NP'), ('Jr.', 'NP'), ('Fulton', 'NP'), ('Atlanta', 'NP'), ('Fulton', 'NP'), ('Fulton', 'NP'), ('Jan.', 'NP'), ('Fulton', 'NP'), ('Bellwood', 'NP'), ('Alpharetta', 'NP'), ('William', 'NP'), ('B.', 'NP'), ('Hartsfield', 'NP'), ('Pearl', 'NP'), ('Williams', 'NP'), ('Hartsfield', 'NP'), ('Aug.', 'NP'), ('William', 'NP'), ('Berry', 'NP'), ('Jr.', 'NP'), ('Mrs.', 'NP'), ('J.', 'NP'), ('M.', 'NP'), ('Cheshire', 'NP'), ('Griffin', 'NP'), ('Opelika', 'NP'), ('Ala.', 'NP'), ('Hartsfield', 'NP'), ('E.', 'NP'), ('Pelham', 'NP'), ('Henry', 'NP'), ('L.', 'NP'), ('Bowden', 'NP'), ('Hartsfield', 'NP'), ('Atlanta', 'NP'), ('Jan.', 'NP'), ('Ivan', 'NP'), ....]
를 그냥 다음 올바른 아니라면 때문에 그것은 길을 잃어 버리고 그것은 당신이나 당신을 도우려고 노력하는 사람들을 돕지 않을 것입니다. 비평가가 아니라 건설적인 조언으로 :)
내가 2 번을 시도하면 나와 같은 대답을 보여준다. f.split에 대한 결과는 위에 나와 있습니다. – fara