【问题标题】:python - bag of words - wordcount - multiple files - matrix - dataframepython - 词袋 - wordcount - 多个文件 - 矩阵 - 数据框
【发布时间】:2022-11-20 20:09:56
【问题描述】:

我想基于多个 Excel 文件 (300) 创建一个非常简单的词袋。

DummyDoc1 = "这是一个测试文档

DummyDoc2 = "这也是一个testdoc,第二个"

...

我可以导入所有文件,也可以为每个文件做一个简单的字数统计(字典)。 我不明白的是如何将这两者组合成一个看起来像这样的矩阵。

代码导入文件:

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)

有人可以给我一些指导吗?

【问题讨论】:

    标签: python dataframe word-count


    【解决方案1】:
    • 将所有这些 excel 文件放到一个目录中
    • 遍历该目录中的所有文件
    • 使用wordcount中的代码计算每个文件中的字数

    使用this source导出成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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 2020-05-18
      • 1970-01-01
      • 2018-10-03
      相关资源
      最近更新 更多