2016-06-11 62 views
-1

我有一組特徵向量,因爲我已使用獲得的句子:試圖追加值,以矢量的numpy的陣列設有

with open(sys.argv[1]) as trainingSentences: 
    sentence2region2value = json.loads(trainingSentences.read()) 

train_wordlist = [] 

for sentence,locations in sentence2region2value.iteritems(): 
     train_wordlist.append(" ".join(sentence_to_words(sentence, True))) 

vectorizer = CountVectorizer(analyzer = "word", \ 
          tokenizer = None, \ 
          preprocessor = None, \ 
          stop_words = None, \ 
          max_features = 5000) 

train_data_features = vectorizer.fit_transform(train_wordlist) 

train_data_features = train_data_features.toarray() 

欲還添加標籤爲所有這些492個的特徵向量進行邏輯迴歸。這種「預測」標籤包含在sentence2region2value詞典:

{sentence: Y 
    {parsedsentence: Z 
     {prediction: X, 
      location-values:{"Qatar": [32,221,31]},{"Dubai": [12,123,421]},.....} 

目前,我嘗試使用此:

for prediction in sentence2region2value["sentence"]["parsedsentence"].iteritems(): 
     for i in train_data_features: 
      train_data_features[i] = np.append(train_data_features[i],np.array(prediction)) 

但它無法正常工作。有任何想法嗎?

回答

0

您的問題表達不是很可讀的,我有什麼一些變量看起來像猜測,但我會對此發表評論:

for prediction in sentence2region2value["sentence"]["parsedsentence"].iteritems(): 

所以prediction將是一對值,(key, value) ,從那本字典中。我猜這將是類似("Qatar", [32,221,31])的東西,但我不確定你是否在這個教官那裏工作。

 for i in train_data_features: 

train_data_features是一個數組(從以前toarray()表達),但我不知道它包含什麼(形狀和D型?)。我猜字符串,也許只是對象(指向對象的指針,如列表)。

在任何情況下i都是這些元素之一。但那爲什麼要train_data_features[i]?那纔有意義,如果i是一個數,for i in range(train_data_features.shape[0]):

結果讓我們假設這真的是i是,讓train_data_features[i]實際上是數組的元素。

  train_data_features[i] = np.append(train_data_features[i], np.array(prediction)) 

這個np.append會工作,如果該元素本身是一個數組。

np.array(prediction)是什麼樣子?

這可能會實現:

Y = np.array(( 'quatar',[1,2,3]),D型細胞=對象)

並且如果train_data_features[i]是類似的,然後追加會做像

In [220]: x 
Out[220]: array(['quatar', [1, 2, 3]], dtype=object) 

In [221]: x=np.append(x,y) 

In [222]: x 
Out[222]: array(['quatar', [1, 2, 3], 'quatar', [1, 2, 3]], dtype=object) 

In [223]: x=np.append(x,y) 

In [224]: x 
Out[224]: array(['quatar', [1, 2, 3], 'quatar', [1, 2, 3], 'quatar', [1, 2, 3]], dtype=object) 

你沒有給我們一個關於變量包含什麼或者你打算做這個表達的好主意。但是,我可能會陷入困境,會幫助你弄清細節。

我鼓勵你在交互式會話中一塊一塊地測試代碼,就像我在這裏做的那樣。不要只寫一個大表達,並希望它運行。逐件開發,並確保每個添加按預期工作。

並且編輯問題,或者期望更多的負面投票和/或接近的投票。