Питон - мешок слов

Я хочу создать очень простой набор слов на основе нескольких файлов Excel (300).

DummyDoc1 = "Это тестовая документация.

DummyDoc2 = "Это тоже тестовая документация, вторая"

...

Я могу импортировать все файлы, а также могу сделать простой подсчет слов (dict) для каждого файла. Чего я не понимаю, так это того, как объединить эти два элемента в матрицу, которая выглядит примерно так.

Код импорта файлов:

def get_files(dir):
    files = [f.path for f in os.scandir(dir)]
    return files

files = get_files_ext(DIR_IN, "xlsx")

for file in files:
    file = fm.get_filename(file)
    df_all = pd.read_excel(os.path.join(DIR_IN, file))

Количество слов в коде:

text = open(r"..\PycharmProjects\DrillPinsBagOfWords\files_in\test.csv", "r", errors = "ignore")

d = dict()
for line in text:
    
    line = line.strip()
    line = line.lower()
    words = line.split(" ")
    for word in words:
        if word in d:
            d[word] = d[word] + 1
        else:
            d[word] = 1


gesorteerd = sorted(d.items(), key=lambda x: x[1], reverse=True)

for x in gesorteerd:
     print(x)

Может кто-нибудь дать мне какое-то направление, пожалуйста?

================================================== ==============

Вот код, который у меня есть до сих пор. Я все еще борюсь с тотальным диктом.

import filemanager as fm
import pandas as pd

directory = r"C:\Users\files_in_test"

total_dict = dict()
files = fm.get_files_ext(directory, "csv")

count = 0
list_dict = []
for filename in files:
    d = dict()
    with open(filename, "r", errors = "ignore") as text:
        count += 1
        for line in text:
            line = line.strip()
            line = line.lower()
            words = line.split(" ")
            for word in words:
                if word in d:
                    d[word] = d[word] + 1
                else:
                    d[word] = 1
    print("Print dict", count, d)
    # maak lijst van dict's
    list_dict.append(d.copy())

# print lijst van dict's
print("Print list_dict: ", list_dict)

df = pd.DataFrame(list_dict)
print(df)

result = df.transpose()
print(result)
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Соберите все эти файлы Excel в один каталог
  • Перебрать все файлы в этом каталоге
  • Используйте код из вашего wordcount для подсчета слов в каждом файле

Используйте этот источник для экспорта в формат Excel

import os

total = dict()
directory = "YOUR DIRECTORY HERE"
for filename in os.listdir(directory):
   d = dict()
   with open(filename, "r") as text:
     for line in text:
    
      line = line.strip()
      line = line.lower()
      words = line.split(" ")
      for word in words:
          if word in d:
              d[word] = d[word] + 1
          else:
              d[word] = 1
    total[filename] = d


gesorteerd = sorted(d.items(), key=lambda x: x[1], reverse=True)

for x in gesorteerd:
     print(x)

Спасибо за ответ: теперь у меня есть полный набор слов для всех файлов. Как сделать матричное представление, каждый словарь (для каждого файла) и общий словарь вместе?

Tralala 20.11.2022 15:55

Другие вопросы по теме