2016-06-11 63 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) 

你没有给我们一个关于变量包含什么或者你打算做这个表达的好主意。但是,我可能会陷入困境,会帮助你弄清细节。

我鼓励你在交互式会话中一块一块地测试代码,就像我在这里做的那样。不要只写一个大表达,并希望它运行。逐件开发,并确保每个添加按预期工作。

并且编辑问题,或者期望更多的负面投票和/或接近的投票。