Как преобразовать матрицу TF-IDF в общий словарь из 10 лучших слов - PullRequest
1 голос
/ 23 февраля 2020

Я пытаюсь получить общий балл слов tf-idf по нескольким текстам. Я придерживаюсь ручного метода вычисления tf-idf, показанного здесь: https://towardsdatascience.com/natural-language-processing-feature-engineering-using-tf-idf-e8b9d00e7e76

Я использую эти предложения: [«человек вышел гулять», «дети сидели» вокруг огня ']

Результаты можно увидеть в этой таблице данных pandas:

enter image description here

Используемые словари показать результат tf-idf можно здесь:

[{'a': 0.09902102579427789, 'for': 0.09902102579427789, 'man': 0.09902102579427789, 'out': 0.09902102579427789, 'the': 0.0, 'walk': 0.09902102579427789, 'went': 0.09902102579427789}, 

{'around': 0.11552453009332421, 'children': 0.11552453009332421, 'fire': 0.11552453009332421, 'sat': 0.11552453009332421, 'the': 0.0}]

Как я могу преобразовать этот список словарей результатов TF-IDF в один словарь лучших результатов tf-idf в целом, по порядку?

1 Ответ

0 голосов
/ 23 февраля 2020

Поскольку мы работаем с несколькими предложениями здесь и с учетом характера TF-IDF, частоты слов в общем документе и частоты слов в общем корпусе, мы можем просто упорядочить ваш результат от большего к меньшему. Для этого мы можем использовать метод для сортировки словаря, который вы показали в своем вопросе.

def sort_dictionary(my_dict):
    return {k: v for k, v in sorted(my_dict.items(), key=lambda item: item[1], reverse=True)}

Таким образом, мы получаем результат:

{'a': 0.09902102579427789, 'for': 0.09902102579427789, 'man': 0.09902102579427789, 'out': 0.09902102579427789, 'walk': 0.09902102579427789, 'went': 0.09902102579427789, 'the': 0.0}

В соответствии с документами, или предложения, которые мы использовали в качестве ввода. Хотя в предложениях содержится тринадцать слов, у нас есть только 7 уникальных, но если бы у нас их было сотни, мы могли бы ограничить наш поиск первой десяткой в ​​отсортированном словаре, и это дало бы нам первую десятку.

...