2017-11-30 18 views
4

으로 적응이 안되요 문서의 일부를 추출 나는 Doc 인스턴스로 Spacy에 의해 구문 분석 다소 긴 텍스트가 : 여기새 문서

import spacy 

nlp = spacy.load('en_core_web_lg') 
doc = nlp(content) 

docDoc class instance되고있다.

이제 텍스트가 크기 때문에 Jupyter 전자 필기장에서 문서의 한 부분 (예 : 처음 100 문장) 만 사용하여 처리하고 실험하고 시각화하고 싶습니다.

기존 문서의 일부로 새 Doc 인스턴스를 조각화하고 만들려면 어떻게해야합니까?

+0

특정 질문은 다소 불분명합니다. 'Doc [index1 : index2]'에 의해'Doc'에서 슬라이스를 가져올 수 있습니다. 이것은 평범한 파이썬리스트 나 배열로하는 방법입니다. 내용이 문자열 인 한 슬라이스 내용은 정상적으로 작동합니다. 문장 자체로 잘라내기를 원한다면 조금 더 거칠어집니다. – Uvar

+0

@Uvar 약간 혼란스러운 경우 죄송합니다. 'doc [index1 : index2]'를 슬라이싱하는 첫 번째 문제점은 슬라이스의 결과가'Span' 유형이고'Doc' 유형이 아니라는 것과 두 번째 것은'슬라이싱 문장으로 ".. 고마워. – alecxe

+0

좋아요 ... 저는 여기서 완전히 엉뚱한 것을 제안 할 것입니다. 예를 들어 문장을 외부가 아닌 이해력 안에서 조각내는 등 더 이해하기 쉬운 것으로 수정하십시오. (나는 그것을 광범위하게 테스트하지 않았기 때문에, 나는 일하기에 안전하다고 느꼈다.) : 'sentences = [doc.sents에 보낸 sent.string.strip()] [: 100]'; 'Minidoc = nlp (''.join (sentences))' – Uvar

답변

2

목적을 달성하는 데 오히려 못된 방법은 문장의 목록을 구성하고 문장의 하위 집합에서 새 문서를 만드는 것입니다.

sentences = [sent.string.strip() for sent in doc.sents][:100] 
minidoc = nlp(' '.join(sentences)) 

더 나은 해결책이있는 것처럼 느껴지지만 적어도 이것이 작동하는 것 같습니다.