尝试将值附加到向量特征的numpy数组中

2024-10-03 11:12:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一组句子的特征向量:

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字典中:

^{pr2}$

目前我正在尝试使用此:

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))

但它不起作用。有什么想法吗?在


Tags: innonefordatatrainsentencefeatureswords
1条回答
网友
1楼 · 发布于 2024-10-03 11:12:56

你的问题表达式可读性不强,我不得不猜测一些变量是什么样子的,但我将对其进行评论:

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

因此prediction将是字典中的一对值(key, value)。我猜应该是("Qatar", [32,221,31]),但我不确定你在措辞上是否做得那么差。在

^{pr2}$

train_data_features是一个数组(来自前面的toarray()表达式),但我不知道它包含什么(shape和dtype?)。我猜字符串,可能只是对象(指向对象的指针,比如列表)。在

无论如何,i就是其中一个元素。但是为什么train_data_features[i]?只有当i是一个数字,for i in range(train_data_features.shape[0]):的结果时,这才有意义

让我们假设i是什么,因此{}实际上是该数组的一个元素。在

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

如果元素本身是一个数组,这个np.append就可以工作了。在

但是np.array(prediction)是什么样子的呢?在

这可能有用:

是的=np.数组(('quatar',[1,2,3]),dtype=对象)

如果train_data_features[i]相似,那么append将执行如下操作

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)

你没有给我们一个很好的概念,变量包含什么,或者你想要这个表达式做什么。但也许我的挣扎能帮你解决细节问题。在

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

或者编辑问题,或者期待更多的反对票和/或接近票。在

相关问题 更多 >