Превращение массива, указывающего темы, присутствующие в документе, в кортеж, перечисляющий темы - PullRequest
0 голосов
/ 08 июля 2019

Название этого может быть немного запутанным, поэтому позвольте мне уточнить: в настоящее время я использую LDA (с пакетом sklearn) для генерации основных тем списка документов. После его реализации я могу получить доступ к выводу, как это

-input: lda_cv_output[0]
-output: 
array([0.00131579, 0.00131579, 0.00131579, 0.81370014, 0.00131579,
       0.00131579, 0.00131579, 0.00131579, 0.00131579, 0.00131579,
       0.16261565, 0.00131579, 0.00131579, 0.00131579, 0.00131579,
       0.00131579, 0.00131579, 0.00131579, 0.00131579, 0.00131579])

, чтобы увидеть из всех 20 сгенерированных тем, их актуальность для первого документа.

Я хотел получить что-то вроде

[(1, 0.00131579),(2, 0.00131579),(3, 0.00131579),(4, 0.81370014),(5, 0.00131579),(6, 0.00131579),(7, 0.00131579),(8, 0.00131579),(9, 0.00131579),(10, 0.00131579),(11, 0.16261565),(12, 0.00131579),(13, 0.00131579),(14, 0.00131579),(15, 0.00131579),(16, 0.00131579),(17, 0.00131579),(18, 0.00131579),(19, 0.00131579),(20, 0.00131579)]

, чтобы я мог легко визуализировать актуальность каждой темы для документа.

Однако я не уверен, как это сделать. Может ли кто-нибудь помочь мне с быстрым и простым способом сделать это?

Спасибо, что уделили время!

1 Ответ

1 голос
/ 08 июля 2019

Это не проверено, но должно генерировать список указанного формата, назначенный переменной output_lst. Функция enumerate () берет список, и когда вы выполняете итерацию, она возвращает каждый элемент в паре с его индексом, начиная с 0. Таким образом, i + 1, так что ваш список начинается с 1.

output_lst = [(i+1,x) for i,x in enumerate(lda_cv_output[0])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...