def _convert_to_svm_node_array(x):
    """ convert a sequence or mapping to an svm_node array """
    import operator

    # Find non zero elements
    iter_range = []
    if type(x) == dict:
        for k, v in x.items():
            # all zeros kept due to the precomputed kernel; no good solution yet
            #			if v != 0:
            iter_range.append(k)
    elif isinstance(x, collections.abc.Sequence):
        for j in range(len(x)):
            #			if x[j] != 0:
            iter_range.append(j)
    else:
        raise TypeError("data must be a mapping or a sequence")

    iter_range.sort()
    data = svmc.svm_node_array(len(iter_range) + 1)
    svmc.svm_node_array_set(data, len(iter_range), -1, 0)

    j = 0
    for k in iter_range:
        svmc.svm_node_array_set(data, j, k, x[k])
        j = j + 1
    return data
def _convert_to_svm_node_array(x):
	""" convert a sequence or mapping to an svm_node array """
	import operator

	# Find non zero elements
	iter_range = []
	if type(x) == dict:
		for k, v in x.iteritems():
# all zeros kept due to the precomputed kernel; no good solution yet
#			if v != 0:
				iter_range.append( k )
	elif operator.isSequenceType(x):
		for j in range(len(x)):
#			if x[j] != 0:
				iter_range.append( j )
	else:
		raise TypeError,"data must be a mapping or a sequence"

	iter_range.sort()
	data = svmc.svm_node_array(len(iter_range)+1)
	svmc.svm_node_array_set(data,len(iter_range),-1,0)

	j = 0
	for k in iter_range:
		svmc.svm_node_array_set(data,j,k,x[k])
		j = j + 1
	return data
Exemple #3
0
def _convert_to_svm_node_array(x):
	""" convert a sequence or mapping to an svm_node array """
	import operator

	# Find non zero elements
	iter_range = []
	if type(x) == dict:
		for k, v in x.iteritems():
			if v != 0:
				iter_range.append( k )
	elif operator.isSequenceType(x):
		for j in range(len(x)):
			if x[j] != 0:
				iter_range.append( j )
	else:
		raise TypeError,"data must be a mapping or a sequence"

	iter_range.sort()
	data = svmc.svm_node_array(len(iter_range)+1)
	svmc.svm_node_array_set(data,len(iter_range),-1,0)

	j = 0
	for k in iter_range:
		svmc.svm_node_array_set(data,j,k,x[k])
		j = j + 1
	return data
Exemple #4
0
def _convert_to_svm_node_array(x):
    """ convert a sequence or mapping to an svm_node array """
    data = svmc.svm_node_array(len(x) + 1)
    svmc.svm_node_array_set(data, len(x), -1, 0)
    import operator
    if type(x) == type({}):
        keys = x.keys()
        keys.sort()
        j = 0
        for k in keys:
            svmc.svm_node_array_set(data, j, k, x[k])
            j = j + 1
    elif operator.isSequenceType(x):
        for j in range(len(x)):
            svmc.svm_node_array_set(data, j, j + 1, x[j])
    else:
        raise TypeError, "data must be a mapping or a sequence"

    return data
Exemple #5
0
def _convert_to_svm_node_array(x):
	""" convert a sequence or mapping to an svm_node array """
	data = svmc.svm_node_array(len(x)+1)
	svmc.svm_node_array_set(data,len(x),-1,0)
	import operator
	if type(x) == type({}):
		keys = x.keys()
		keys.sort()
		j = 0
		for k in keys:
			svmc.svm_node_array_set(data,j,k,x[k])
			j = j + 1
	elif operator.isSequenceType(x):
		for j in range(len(x)):
			svmc.svm_node_array_set(data,j,j+1,x[j])
	else:
		raise TypeError,"data must be a mapping or a sequence"
	
	return data