2017-10-27 1 views
0

저는 첫 번째 파이썬 프로젝트에서 작업하고 있으며 합리적으로 큰 데이터 세트 (수천 개의 행 중 10 개)가 있습니다. 나는 5 개의 텍스트 열 ('셀'당 텍스트의 여러 문장)에 대해 nlp (클러스터링, 분류)를 수행하고 pandas를 사용하여 데이터 세트를 구성/구축했습니다. 모든 nlp에 spaCy를 사용하고 싶지만 내 열의 텍스트를 토큰 화하는 방법을 알아낼 수 없습니다. 나는 많은 수의 spaCy 문서를 읽고 주위를 둘러 보았습니다. 그러나 내가 찾은 모든 예는 판다 스 df에서 75K 행이 아닌 단일 문장 또는 단어에 대한 것입니다.팬더와 spaCy를 사용하여 토큰 화하기

내가 좋아하는 일을 시도했다 : df['new_col'] = [token for token in (df['col'])]

하지만 확실히 도움/자료를 부탁드립니다.

full (albeit messy) code available here

+0

무슨 문제가 있습니까? 오류가 있습니까? – Peter

+0

@Peter 오류가 발생하지 않지만 텍스트가 토큰 화되지 않은 것입니다. 즉, lemmatization과 같은 추가 처리를 시도 할 때 기본적으로 텍스트가 여전히 문자열 형식이고 토큰이 아니라는 오류가 발생합니다. – LMGagne

답변

3

내가 사용한 적이 적응 (NLTK 항상 나를 위해 일을 얻었다) 그러나이 작동합니다 같은 문서에서이기는에서 보이는 :

import spacy 
nlp = spacy.load('en') 

df['new_col'] = df['text'].apply(lambda x: nlp(x)) 

참고 nlp 있음으로 default는 품사 태그 지정, 구문 분석 및 명명 된 엔티티 인식을 포함하는 전체 SpaCy 파이프 라인을 실행합니다. nlp(x) 대신 nlp.tokenizer(x)을 사용하거나 모델을로드 할 때 파이프 라인의 일부를 사용하지 않도록 설정하여 코드의 속도를 크게 높일 수 있습니다. 예 : nlp = spacy.load('en', parser=False, entity=False).

관련 문제