2017-11-19 1 views
0

sckit-learn을 사용하여 텍스트 데이터에 대한 전처리를 수행합니다. 내 목표는 벡터 데이터 표현 (피쳐 및 라벨)을 얻는 것입니다. 내가 한 일은 tfidf를 사용하여 데이터 집합 크기를 사용하여 벡터화하는 것입니다. double 크기로 변경하면 X.ravel()이 사용됩니다. 이전sckitlearn을 사용하는 텍스트 벡터 화기

X (30,376, 2)

X 후 (60752, 41331)

내 문제는 내가 X 벡터에 두 가지 기능을 가진, 그리고 난 어떻게 제대로 벡터 표현을 취득 할 때 내가 train_test_split을 사용하고 때 경우 그 경우를

df = pd.read_csv('Dataset.csv',encoding='latin1') 
    df = df.dropna() 



    X = np.array(df.drop(['Type'], 1)) 
    y = np.array(df['Type']) 




    #print(X) 

    print("Extracting features from the training data using a sparse vectorizer") 
    vectorizer= TfidfVectorizer(sublinear_tf=True, max_df=0.5, 
            stop_words='english') 
    X = vectorizer.fit_transform(X.ravel().astype('U')) 

    imp = Imputer(missing_values='NaN', strategy='mean', axis=0) 
    X = imp.fit_transform(X) 
    X.shape 
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) 

및 작업을 수행 할 수 있습니다 내가 얻을이 오류가 나는

참조 이해하지 않는다 617,451,515,
TypeError: Singleton array array(TfidfVectorizer(analyzer='word', binary=False, decode_error='strict', 
     dtype=<class 'numpy.int64'>, encoding='utf-8', input='content', 
     lowercase=True, max_df=0.5, max_features=None, min_df=1, 
     ngram_range=(1, 1), norm='l2', preprocessor=None, smooth_idf=True, 
     stop_words='english', strip_accents=None, sublinear_tf=True, 
     token_pattern='(?u)\\b\\w\\w+\\b', tokenizer=None, use_idf=True, 
     vocabulary=None), dtype=object) cannot be considered a valid collection. 

어떤 제안 감사

답변

0

어느 X 또는 y는 잘못된 형태를 갖는다. 여기

은 검증 통과 데이터 세트에 사용되는 excerpt from the validation.py입니다 :

if hasattr(x, 'shape'): 
    if len(x.shape) == 0: # <----- NOTE !!! 
     raise TypeError("Singleton array %r cannot be considered" 
         " a valid collection." % x) 
    return x.shape[0] 
else: 
    return len(x) 
+0

문제는 여기 X는 두 가지 기능을 가지고 있지만 TfidfVectorizer이 X 전에 두 배 크기의 하나 개의 배열로 두 가지 기능을 결합 할 것으로 보인다이다 (30376, 2) X (60752, 41331) –

+0

@ahmedosama 이후, 한 가지 질문에서 너무 많은 질문을하지 마십시오. 내가 원래의 질문을 올바르게 이해했다면 - "나는 '...'이라는 오류가 무엇을 의미하는지 이해하지 못한다. 나는 그 질문에 대답했다. 다른/새로운 질문이있는 경우 새로운 질문을 열고 (질문하고) 관련 코드를 지정하고 작은 재현 가능한 데이터 세트를 제공하여 SO 커뮤니티의 사람들이 쉽게 재현하여 해결책을 찾을 수 있도록 – MaxU

+0

죄송합니다. 주 질문을 편집했습니다. 아직도 막연한 일인지 알려주세요. –

관련 문제