파이썬 NLTK 서적 (7 장)을 기반으로 NLP- 파이프 라인을 구축 중입니다. 코드의 첫 번째 세그먼트는 데이터를 올바르게 전처리,하지만 난 내 NP-chunker을 통해 출력을 실행할 수 없습니다입니다 : 이것은NP- 청크 값 오류 (Python nltk)
import nltk, re, pprint
#Import Data
data = 'This is a test sentence to check if preprocessing works'
#Preprocessing
def preprocess(document):
sentences = nltk.sent_tokenize(document)
sentences = [nltk.word_tokenize(sent) for sent in sentences]
sentences = [nltk.pos_tag(sent) for sent in sentences]
return(sentences)
tagged = preprocess(data)
print(tagged)
#regular expression-based NP chunker
grammar = "NP: {<DT>?<JJ>*<NN>}"
cp = nltk.RegexpParser(grammar) #chunk parser
chunked = []
for s in tagged:
chunked.append(cp.parse(tagged))
print(chunked)
역 추적 내가 얻을 :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/u0084411/Box Sync/Procesmanager DH/Text Mining/Tools/NLP_pipeline.py", line 24, in <module>
chunked.append(cp.parse(tagged))
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\nltk\chunk\regexp.py", line 1202, in parse
chunk_struct = parser.parse(chunk_struct, trace=trace)
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\nltk\chunk\regexp.py", line 1017, in parse
chunkstr = ChunkString(chunk_struct)
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\nltk\chunk\regexp.py", line 95, in __init__
tags = [self._tag(tok) for tok in self._pieces]
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\nltk\chunk\regexp.py", line 95, in <listcomp>
tags = [self._tag(tok) for tok in self._pieces]
File "C:\Users\u0084411\AppData\Local\Continuum\Anaconda3\lib\site-packages\nltk\chunk\regexp.py", line 105, in _tag
raise ValueError('chunk structures must contain tagged '
ValueError: chunk structures must contain tagged tokens or trees
>>>
내 실수는 여기에 무엇입니까 ? 'Tagged'가 토큰 화되었으므로 프로그램이 이것을 왜 인식하지 못합니까?
감사합니다. 톰
[왜 오류가 발생합니까? ValueError : 청크 구조체에 태그가 추가 된 토큰 또는 트리가 있어야합니다.] (http://stackoverflow.com/questions/13269543/whya-am-i-getting-error-valueerror-chunk-structures-must-contain-tagged-tokens). –
이것을 구현했지만 동일한 추적을 얻을 수 있습니다. –
'tags'는 튜플 또는 Tree 여야합니다. http://www.nltk.org/_modules/nltk/chunk/regexp.html을 참조하십시오. –