【问题标题】:How to count frequency of list of words in multiple txt files python如何计算多个txt文件python中单词列表的频率
【发布时间】:2020-06-29 19:19:56
【问题描述】:

我在一个 csv 文件中有 450 个关键字。我想计算这些关键字在单独文件夹中的多个 txt 文件中出现的频率。

csv 文件示例:

  • 关键字1
  • 关键字2

预期输出:

公司名称、关键字1、关键字2

XYZ 公司, 4, 5

我目前正在通过为每个关键字编写代码来计算每个关键字的频率。我正在寻找一种解决方案来读取关键字的 csv 文件并计算这些关键字在多个文本文件中出现的频率。

我的代码:

path = ['foldername1', 'foldername2']
for i in tqdm(path):
    for filename in os.listdir(i):
      with open(os.path.join(i, filename), encoding='ISO-8859-1') as filedata:
      text=filedata.read()
      keyword1=sum(1 for match in re.finditer(r"\bkeyword1", text, re.IGNORECASE))
      keyword2=sum(1 for match in re.finditer(r"\bkeyword2", text, re.IGNORECASE))
      res=re.findall("data_(\d+)_", filedata.name)
      k=' '.join(res)
      file_list.append({'company name': k,'keyword1':, 'keyword2':keyword2})
      dft=pd.DataFrame(file_list)
      dft.to_csv('keyword_count.csv', index=False)

【问题讨论】:

    标签: python regex path counter


    【解决方案1】:

    一种可以轻松操作以完成您想要的操作的基本方法:

    with open('.\\keywords.csv','r') as r:
        keywords = r.read().splitlines()
    
    with open('.\\foldername1\\file1.txt','r') as r:
        words1 = [1 for w in r.read().split() if w.lower() in keywords]
    
    with open('.\\foldername2\\file2.txt','r') as r:
        words2 = [1 for w in r.read().split() if w.lower() in keywords]
    
    print('Occurences of keywords in file1: {len(words1)}')
    print('Occurences of keywords in file1: {len(words2)}')
    

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 2015-06-14
      • 2021-02-07
      • 2020-04-06
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多