tf-idf — доступ к большой разреженной матрице scipy и получение самых высоких значений

Для матрицы результатов tfidf я хотел получить верхние значения tfidf. Я видел, как можно установить максимальное количество функций для векторизатора tfidf, но это для слов с наибольшим количеством tf. Я хочу по-прежнему получать высокие значения для tfidf, которые могут включать слова с низким tf. Одна идея, которую я нашел, заключается в том, чтобы сделать что-то вроде tf_idf_matrix.sum(axis=0), которое суммировало бы столбцы. Это работает в моем коде, но из-за 113 тысяч столбцов печать не покажет их все. Если бы я мог использовать что-то вроде argsort() для доступа к верхним значениям суммы столбца K, это было бы полезно.

Этот вопрос вытекает из моего первоначального вопроса, который здесь.

Причина в том, что я хочу знать, на какие слова следует обратить внимание, и не обязательно на те, которые имеют наибольшую частоту. Я также хотел бы знать об «аномалиях», то есть о словах, которые могут не появляться во всех или многих документах/сообщениях, но могут иметь высокий tfidf в одном или меньшем количестве документов. Если есть другие подходы, которые я должен рассмотреть, я хотел бы объяснить это.

Спасибо


person KBA    schedule 13.11.2013    source источник
comment
Чтобы получить k самые высокие суммы столбцов: col_sum = tf_idf_matrix.sum(axis=0).A.squeeze(); idx = np.argsort(col_sum)[-k:][::-1] и теперь idx содержат номера столбцов первых 5 сумм столбцов, и вы можете получить значения из col_sum[idx].   -  person Jaime    schedule 14.11.2013
comment
Большое спасибо! Это помогло, и я заставил его работать   -  person KBA    schedule 14.11.2013