2016-11-02 4 views
3

나는 14784 개의 텍스트 문서가 있는데, 나는 벡터화하려고하고 있는데, 그래서 나는 약간의 분석을 할 수 있습니다. 저는 sklearn에서 CountVectorizer을 사용하여 문서를 피쳐 벡터로 변환했습니다. 나는 호출하여 이런 짓을 :팬더 데이터 보드에 sklearn CountVectorizer의 결과를 입력하십시오.

예 이제 모든 텍스트 문서

의 배열입니다

vectorizer = CountVectorizer 
features = vectorizer.fit_transform(examples) 

, 내가 추가 기능 이용을 위해 노력하고 있어요. 이를 위해 팬더 데이터 프레임에 기능을 저장합니다. 현재 팬더 데이터 프레임 (텍스트 기능을 삽입하지 않은 상태)의 모양은 (14784, 5)입니다. 내 특성 벡터의 모양은 (14784, 21343)입니다.

벡터화 된 기능을 팬더 데이터 프레임에 삽입하는 좋은 방법은 무엇입니까? 당신의 기본 데이터 프레임이 df 경우

답변

-1

, 당신이 할 필요가있다 : 나는 몇 가지 옵션을 권하고 싶습니다

import pandas as pd  
features_df = pd.DataFrame(features) 
combined_df = pd.concat([df, features_df], axis=1) 

분석의 유형에 따라 유용 할 수있는 기능의 수를 줄일 수 하고있어. 예를 들어 아직 시작하지 않은 경우 중지 단어를 삭제하고 형태소 분석을하는 것이 좋습니다. 또한 features = vectorizer.fit_transform(examples, max_features = 1000)과 같은 max_features를 설정하여 지형지 물의 수를 제한 할 수 있습니다.

+0

두 번째 줄에는 벡터화 된 기능의 데이터 프레임을 만드십니까? 그렇다면, 그것은 나를 위해 작동하지 않습니다. 'DataFrame 생성자 제대로 호출되지 내가 사용 :! 'PandasError이 : 나는 다음과 같은 오류가 발생합니다'features_df = pd.DataFrame (입술)'입술 CountVectorizer의 결과 는'fit_transform' 방법 –

7

원시 문서에서 vocab 사전을 학습 한 후 반환 용어 - 문서 행렬.

X = vect.fit_transform(docs) 

밀도가 높은 csr 행렬을 고밀도 형식으로 변환하고 열에 피쳐 정수 인덱스에서 피쳐 이름으로의 배열 매핑을 포함 할 수 있습니다.

count_vect_df = pd.DataFrame(X.todense(), columns=vect.get_feature_names()) 

원래 dfcount_vect_df 칼럼을 연결.

pd.concat([df, count_vect_df], axis=1) 
+0

내가 그 추가에 좋아 당신의 두 번째 라인 - 제가 작업하고있는 프로젝트 중 일부에 그들을 통합 할 것입니다! – Tchotchke

관련 문제