簡體   English   中英

使用python3計算來自txt文件特定部分的單詞出現次數

[英]Counting word occurrences from specific part of txt files using python3

我有一個包含許多txt文件的文件夾。 我想計算每個txt文件的某個部分中一組單詞的出現次數,並將結果導出到新的excel文件。 具體來說,我想查找僅在“公司A”一詞之后開頭並以“公司B”字樣結尾的部分文字中出現的單詞。

例如:

我想在下面的大膽部分中查找“公司”和“董事會”一詞:

...... A公司董事會監督公司業務運營中固有的風險管理及其戰略計划的實施。 作為對B公司戰略方向的考慮的一部分,董事會在年度戰略規划會議上審查與公司戰略計划相關的風險,並在全年定期審查 此外,董事會還解決了與......相關的主要風險。

我已經設法計算了一組單詞的出現次數, 但是來自整個txt文件,而不是公司A到公司B的部分。

import os
import sys
import glob

for filename in glob.iglob('file path' + '**/*', recursive=True):
    def countWords(filename, list_words):
        try:
            reading = open(filename, "r+", encoding="utf-8")
            check = reading.readlines()
            reading.close()
            for each in list_words:
                lower = each.lower()
                count = 0
                for string in check:
                    word_check = string.split()
                    for word in word_check:
                        lowerword = word.lower()
                        line = lowerword.strip("!@#$%^&*()_+?><:.,-'\\ ")
                        if lower == line:
                            count += 1 
                print(lower, ":", count)
    except FileNotFoundError:
        print("This file doesn't exist.")
        for zero in list_words:
            if zero != "":
                print(zero, ":", "0")
            else:
                pass
    print('----')
    print(os.path.basename(filename))
    countWords(filename, ["Corporation", "Board"])

示例文本的最終輸出應如下所示:

  • txtfile1
  • 公司:2
  • 董事會:1

並且應該為文件夾的所有txt文件復制上述過程並將其導出為ex​​cel文件。

感謝您的考慮,我提前就問題的長度道歉。

你可以嘗試regexp,假設你想要整個字符串,如果你在看到公司b之前看到公司a的重復。

re.findall('company a.*?company b', 'company a did some things in agreement with company b')

這將提供從公司a開始到公司b結尾的所有文本字符串的列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM