У меня есть термин матрица документа и следующий код, который извлекает значения из него:
term_doc_matrix[index,:]
, где index - это список «индексов».Я попробовал следующее, чтобы понять, как это будет работать: print(term_docs[0,:])
, но эта строка печатает разные выходные данные, когда они хранятся внутри и снаружи следующей функции.
def get_likelihood(term_doc_matrix, label_index, smoothing = 0):
likelihood={};
c=0;
for label, index in label_index.items():
print('-1 ');
for i in range(len(index)):
print(index[i],end=",");
print("0. ", term_doc_matrix[0,:])
likelihood[label] = term_doc_matrix[index,:].sum(axis=0)+smoothing;
if c==0:
print("1. ",label,"\n", np.asarray(likelihood[label]))
if c==1:
print("2. ",label,"\n", np.asarray(likelihood[label])[0])
likelihood[label] = np.asarray(likelihood[label])[0];
total_outcome = likelihood[label].sum();
likelihood[label] =likelihood[label]/ float(total_outcome);
c+=1;
вот вывод, когда строка находится снаружи:
(0, 481) 1
(0, 357) 1
(0, 69) 1
(0, 285) 1
(0, 424) 1
(0, 250) 1
(0, 345) 1
(0, 445) 1
(0, 231) 1
(0, 497) 1
(0, 47) 1
(0, 178) 2
(0, 125) 2
, когда строка находится внутри функции:
(0, 125) 2
(0, 178) 2
(0, 47) 1
(0, 497) 1
(0, 231) 1
(0, 445) 1
(0, 345) 1
(0, 250) 1
(0, 424) 1
(0, 285) 1
(0, 69) 1
(0, 357) 1
(0, 481) 1
Я прошу кого-нибудь объяснить мне, как эта строка выбрасывает форму, например, (0,497) 1
term_doc_matrix[index,:]