精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Python進行文本分析-將PDF文件多進程批量處理為csv文件

開發 前端
在文本分析的過程中,將原始數據轉換為TXT文件非常關鍵,主要出于以幾個方面的考慮.

在文本分析的過程中,將原始數據轉換為TXT文件非常關鍵,主要出于以下幾個方面的考慮:

1.格式簡單與統一:

  • TXT文件是一種簡單的文本格式,只包含純文本信息,不包含任何格式或樣式信息。這種簡單和統一的格式有助于減少在文本分析過程中可能出現的混淆或誤解。
  • 其他格式的文檔,如PDF或Word文檔,可能包含圖像、表格和其他非文本元素,還可能包含復雜的格式和樣式,這些都可能干擾文本分析的過程。

2. 便于文本預處理:

  • ? 文本分析通常需要對文本數據進行預處理,包括分詞、去停用詞、標準化等。TXT文件的簡單結構使得這些預處理任務更容易執行。

  • ? 與其他文件格式相比,TXT文件不包含任何復雜的格式或元數據,這有助于簡化預處理步驟,減少可能出現的錯誤和問題。

3.兼容性:

  • ? 大多數文本分析和自然語言處理(NLP)工具都能夠直接處理TXT文件。將原始數據轉換為TXT文件可以確保與這些工具的兼容性,從而簡化分析流程。

  • ? TXT文件是一種通用的文件格式,可以在不同的操作系統和軟件環境中輕松處理,而不需要特定的轉換或適配器。

4.節省資源:

  • ? TXT文件通常比其他文件格式更小,這有助于節省存儲空間和提高處理速度。較小的文件大小也意味著需要較少的計算資源來處理文本數據,從而提高分析效率。

  • ? 簡單的文本格式也意味著在處理時CPU和內存的消耗較低,這對于大規模文本分析任務來說是非常重要的。

5.便于文本挖掘和模式識別:

  • ? 純文本格式使得使用正則表達式和其他文本挖掘技術來識別和提取文本中的模式變得更為容易和直接。

  • ? 純文本數據也便于實現各種文本分析技術,如情感分析、主題建模和實體識別等。

6.可讀性和可檢查性:

  • ? 人類可以直接讀取和理解TXT文件,這對于檢查、調試和理解文本分析的結果非常重要。

7.數據清洗:

  • ? TXT文件的簡單性使得更容易識別和處理缺失值、錯誤和其他數據質量問題,從而保證文本分析的準確性和可靠性。

將原始數據轉換為TXT文件是實現有效和準確文本分析的一個基本步驟,它幫助簡化和標準化文本分析流程,從而提高分析的效率和質量。以下代碼可以用來將pdf文件轉換為txt文件。

pdf2txt.py

#!/usr/bin/env python  # 該行命令告訴操作系統使用 Python 解釋器執行此文件
import sys  # 導入sys模塊,用于處理與Python解釋器和運行時環境有關的操作
from pdfminer.pdfdocument import PDFDocument  # 從pdfminer模塊導入PDFDocument類,用于表示PDF文檔
from pdfminer.pdfparser import PDFParser  # 從pdfminer模塊導入PDFParser類,用于解析PDF文檔
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter  # 從pdfminer模塊導入資源管理和頁面解釋類
from pdfminer.pdfdevice import PDFDevice, TagExtractor  # 從pdfminer模塊導入PDF設備和標簽提取器類
from pdfminer.pdfpage import PDFPage  # 從pdfminer模塊導入PDFPage類,用于表示PDF頁面
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter  # 從pdfminer模塊導入轉換器類,用于將PDF轉換為其他格式
from pdfminer.cmapdb import CMapDB  # 從pdfminer模塊導入字符映射數據庫類
from pdfminer.layout import LAParams  # 從pdfminer模塊導入布局分析參數類
from pdfminer.image import ImageWriter  # 從pdfminer模塊導入圖像寫入類

# 定義主函數,argv是一個包含命令行參數的列表
def main(argv):
    import getopt  # 導入getopt模塊,用于解析命令行參數
    # 定義一個顯示用法的內部函數
    def usage():
        print ('usage: %s [-P password] [-o output] [-t text|html|xml|tag]'
               ' [-O output_dir] [-c encoding] [-s scale] [-R rotation]'
               ' [-Y normal|loose|exact] [-p pagenos] [-m maxpages]'
               ' [-S] [-C] [-n] [-A] [-V] [-M char_margin] [-L line_margin]'
               ' [-W word_margin] [-F boxes_flow] [-d] input.pdf ...' % argv[0])
        return 100  # 返回一個錯誤代碼
    try:
        # 使用getopt解析命令行參數
        (opts, args) = getopt.getopt(argv[1:], 'dP:o:t:O:c:s:R:Y:p:m:SCnAVM:W:L:F:')
    except getopt.GetoptError:
        return usage()  # 如果解析失敗,則顯示用法并退出
    if not args: return usage()  # 如果沒有提供非選項參數(例如輸入文件),則顯示用法并退出
    # 初始化一些變量
    debug = 0  # 調試級別
    password = b''  # PDF密碼
    pagenos = set()  # 要處理的頁碼集
    maxpages = 0  # 最大頁數
    outfile = None  # 輸出文件名
    outtype = None  # 輸出類型
    imagewriter = None  # 圖像寫入對象
    rotation = 0  # 旋轉角度
    stripcontrol = False  # 是否剝離控制字符
    layoutmode = 'normal'  # 布局模式
    encoding = 'utf-8'  # 編碼方式
    pageno = 1  # 頁面號
    scale = 1  # 縮放因子
    caching = True  # 是否緩存
    showpageno = True  # 是否顯示頁面號
    laparams = LAParams()  # 布局分析參數對象
    for (k, v) in opts:  # 遍歷選項和值
        if k == '-d': debug += 1  # 設置調試級別
        elif k == '-P': password = v.encode('ascii')  # 設置密碼
        elif k == '-o': outfile = v  # 設置輸出文件名
        elif k == '-t': outtype = v  # 設置輸出類型
        elif k == '-O': imagewriter = ImageWriter(v)  # 創建圖像寫入對象
        elif k == '-c': encoding = v  # 設置編碼方式
        elif k == '-s': scale = float(v)  # 設置縮放因子
        elif k == '-R': rotation = int(v)  # 設置旋轉角度
        elif k == '-Y': layoutmode = v  # 設置布局模式
        elif k == '-p': pagenos.update(int(x)-1 for x in v.split(','))  # 更新頁碼集
        elif k == '-m': maxpages = int(v)  # 設置最大頁數
        elif k == '-S': stripcontrol = True  # 啟用剝離控制字符
        elif k == '-C': caching = False  # 禁用緩存
        elif k == '-n': laparams = None  # 禁用布局分析參數
        elif k == '-A': laparams.all_texts = True  # 啟用所有文本選項
        elif k == '-V': laparams.detect_vertical = True  # 啟用垂直檢測選項
        elif k == '-M': laparams.char_margin = float(v)  # 設置字符邊距
        elif k == '-W': laparams.word_margin = float(v)  # 設置單詞邊距
        elif k == '-L': laparams.line_margin = float(v)  # 設置行邊距
        elif k == '-F': laparams.boxes_flow = float(v)  # 設置框流
    # 設置調試級別
    PDFDocument.debug = debug
    PDFParser.debug = debug
    CMapDB.debug = debug
    PDFPageInterpreter.debug = debug
    # 創建PDF資源管理器對象
    rsrcmgr = PDFResourceManager(caching=caching)
    # 根據輸出類型和選項創建相應的PDF設備對象
    if not outtype:
        outtype = 'text'  # 默認為文本輸出
        if outfile:
            if outfile.endswith('.htm') or outfile.endswith('.html'):
                outtype = 'html'  # 如果輸出文件名以.htm或.html結尾,則設置為html輸出
            elif outfile.endswith('.xml'):
                outtype = 'xml'  # 如果輸出文件名以.xml結尾,則設置為xml輸出
            elif outfile.endswith('.tag'):
                outtype = 'tag'  # 如果輸出文件名以.tag結尾,則設置為tag輸出
            elif outtype == 'tag':
        device = TagExtractor(rsrcmgr, outfp)  # 如果輸出類型為'tag',則創建TagExtractor對象
    else:
        return usage()  # 如果不識別的輸出類型,則顯示用法并退出

    for fname in args:  # 遍歷所有輸入文件名
        with open(fname, 'rb') as fp:  # 以二進制讀模式打開文件
            interpreter = PDFPageInterpreter(rsrcmgr, device)  # 創建PDF頁面解釋器對象
            # 遍歷PDF頁面,獲取頁面對象
            for page in PDFPage.get_pages(fp, pagenos,
                                          maxpages=maxpages, password=password,
                                          caching=caching, check_extractable=True):
                page.rotate = (page.rotate+rotation) % 360  # 設置頁面旋轉角度
                interpreter.process_page(page)  # 處理每個頁面

    device.close()  # 關閉設備對象,釋放資源
    outfp.close()  # 關閉輸出文件,釋放資源
    return  # 從主函數返回

# 檢查此模塊是否作為主模塊運行
if __name__ == '__main__':
    sys.exit(main(sys.argv))  # 如果是,則調用main函數,并使用命令行參數列表作為參數

convertPDF.py

#!/usr/bin/env python3
"""
Script to convert PDFs to text files.

"""

import  unicodedata, os, pdf2txt, datetime

import multiprocessing
def convertPDFToText(i, ID, newDir, fileNamePDF):
    print('Trying to convert: ' + str(i) + ', ' + ID)  # 輸出正在嘗試轉換的文件信息
    try:
        pdf2txt.main(['-o', newDir + '/' + ID + '.txt', fileNamePDF])  # 調用pdf2txt.main來轉換PDF為文本
        print('Successfully converted: ' + ID)  # 轉換成功時的輸出
    except Exception as e:
        print('Failed to convert: ' + ID + f', Error: {e}')  # 轉換失敗時的輸出

def process_pdfs(pdf_list):
    with multiprocessing.Pool(20) as pool:  # 創建一個包含20個進程的進程池
        pool.starmap(convertPDFToText, pdf_list)  # 使用starmap來并行處理pdf_list中的每個元素,每個元素都是一個元組,它將被解包為convertPDFToText的參數

if __name__ == '__main__':

    directory = '../../Data/PDF/work'
    os.chdir(directory)  # 更改當前工作目錄至PDF文件目錄

    # 指定保存轉換后文件的目錄
    newDir = '../TXT/work'
    # os.makedirs(newDir)  # 創建新目錄(如果需要的話)
    print('Placing converted files in: ' + newDir)  # 輸出轉換后文件將被放置的目錄

    pdf_list = []  # 創建一個空列表,用于保存將傳遞給convertPDFToText的參數元組
    i = 0  # 初始化計數器
    for fileNamePDF in os.listdir('./'):  # 遍歷當前目錄中的所有文件
        i += 1  # 計數器遞增
        if fileNamePDF.find(".pdf") == -1:  # 如果文件不是PDF,跳過
            continue

        ID = fileNamePDF[:-4]  # 從文件名中獲取ID(去掉.pdf后綴)
        if os.path.isfile('../TXT/' + ID + '.txt'):  # 如果已經存在對應的文本文件,跳過
            continue

        pdf_list.append((i, ID, newDir, fileNamePDF))  # 將參數元組添加到pdf_list中

    process_pdfs(pdf_list)  # 調用process_pdfs函數,傳遞pdf_list以并行處理PDF文件


責任編輯:華軒 來源: PaperCodeTips
相關推薦

2020-12-31 05:37:05

HiveUDFSQL

2023-10-17 16:24:27

PythonCSV

2023-07-05 07:36:36

SpringJava代碼

2023-11-28 15:18:24

Python

2016-12-14 09:32:49

FileChanne文件復制

2024-09-25 08:00:00

Python文件處理

2023-11-28 09:00:00

機器學習少樣本學習SetFit

2024-11-20 10:00:00

Python文件讀寫

2024-10-30 16:59:57

Python機器學習

2018-06-04 10:04:48

Python數據語言

2018-03-27 13:33:48

百度

2021-08-30 07:57:26

OpenAttack文本對抗攻擊

2024-09-29 16:27:46

Python文件管理

2010-03-12 19:29:15

python svn腳

2022-08-17 12:35:26

Linux sed編輯器

2010-03-05 09:40:08

Python遞歸

2016-11-16 15:05:42

情感分析

2009-12-04 16:49:33

PHP批量導出csv文

2024-04-28 11:39:17

紹csvkit數據分析

2020-07-07 10:50:19

Python丄則表達文本
點贊
收藏

51CTO技術棧公眾號

国产淫片av片久久久久久| 极品尤物一区二区三区| avove在线播放| 精品深夜福利视频| 欧美特级限制片免费在线观看| 中文字幕超清在线免费观看| 无码精品人妻一区二区| 日本最新不卡在线| 欧美精品999| 五月婷婷欧美激情| 欧美理伦片在线播放| 欧美日韩国产美| 国产免费黄色av| 91网在线看| 国产欧美1区2区3区| 国产精品午夜av在线| 中文字幕 国产| 国产亚洲永久域名| 欧美成人午夜视频| 蜜乳av中文字幕| 啪啪国产精品| 精品乱人伦一区二区三区| 色播五月激情五月| 日韩一区二区三区免费| 午夜精品视频一区| 永久免费网站视频在线观看| 成人免费黄色网页| 99在线视频精品| 91在线免费看片| 最近国语视频在线观看免费播放| 99在线精品视频在线观看| 欧美伦理91i| 国内毛片毛片毛片毛片毛片| 禁果av一区二区三区| 亚洲精品国产福利| 女同性αv亚洲女同志| 香蕉久久一区| 精品视频在线免费| 欧美一级黄色影院| 亚洲成人看片| 日韩欧美在线视频观看| 狠狠干 狠狠操| 成人影院在线播放| 亚洲国产综合91精品麻豆| 国产制服91一区二区三区制服| 91电影在线播放| 亚洲国产精品激情在线观看| 日韩一区免费观看| 国产色a在线| 国产午夜精品理论片a级大结局| 精品一区二区国产| 日本在线视频1区| 久久久精品中文字幕麻豆发布| 久久精彩视频| 国产私人尤物无码不卡| 中文字幕精品综合| 一区高清视频| 成人短视频在线| 亚洲激情校园春色| 无码 制服 丝袜 国产 另类| a国产在线视频| 精品久久久久久久久久久久久| 欧美日本视频在线观看| 亚洲永久av| 色狠狠av一区二区三区| 在线观看免费成人av| 成人在线视频观看| 欧美精品日韩一本| 永久av免费在线观看| 8848成人影院| 亚洲国产小视频在线观看| 日本一级片在线播放| 免费视频一区三区| 日韩亚洲第一页| 国产va在线播放| 激情综合自拍| 日本一区二区在线播放| 在线免费看av的网站| 国产一区二区视频在线| 国产欧美日韩伦理| 国产在线视频网| 亚洲男人的天堂网| 国内精品视频一区二区三区| 久久毛片亚洲| 欧美精品xxxxbbbb| 奇米777第四色| 成人动漫免费在线观看| 麻豆国产精品va在线观看不卡 | 黄色高清无遮挡| 日韩电影精品| 日韩成人在线电影网| 久久精品色妇熟妇丰满人妻| 欧美精品国产| 国产精品久久久久久久久久久新郎 | 国产美女一区视频| 色婷婷综合久久久久中文一区二区| 天天色综合社区| 国产精品白丝一区二区三区| 中文欧美在线视频| 久久精品国产亚洲av麻豆色欲| 日韩专区一卡二卡| 鬼打鬼之黄金道士1992林正英| 免费在线高清av| 亚洲精品成人悠悠色影视| 精品国产成人av在线免| 亚洲天堂av资源在线观看| 亚洲欧洲自拍偷拍| 久草资源在线视频| 久久精品国产99国产| 久久99影院| 国产一二区在线观看| 色噜噜狠狠成人中文综合| 国产精品二区视频| 日产精品一区二区| 91精品国产一区| 精品国产av一区二区三区| 国产人伦精品一区二区| 国产精品一线二线三线| 久久中文字幕一区二区| 一本一本久久a久久精品牛牛影视| 久久黄色免费网站| 韩国一区二区视频| 手机看片福利永久国产日韩| 天堂av中文在线观看| 欧美变态tickling挠脚心| 亚洲天堂av中文字幕| 国产免费成人| 久久66热这里只有精品| 日本在线视频中文有码| 91麻豆精品国产91久久久更新时间| 一区二区黄色片| 亚洲欧美成人综合| 国产在线精品日韩| 91www在线| 精品国产一二三| 精品97人妻无码中文永久在线| 卡一卡二国产精品| 亚洲视频精品一区| 青草综合视频| xxxxxxxxx欧美| 亚洲一级片免费看| 国产精品乱码久久久久久| 日韩 欧美 高清| 免费欧美视频| 国产成人亚洲精品| 国产小视频在线播放| 91久久线看在观草草青青| 亚洲第一香蕉网| 水野朝阳av一区二区三区| 欧洲亚洲一区二区| 午夜激情成人网| 伊人久久免费视频| 中国老头性行为xxxx| 欧美高清在线精品一区| 在线观看免费不卡av| 天天超碰亚洲| 91在线观看免费高清| 成人午夜在线影视| 日韩欧美高清在线| 国产在线视频在线观看| 成人av电影在线播放| 阿v天堂2017| 国产a久久精品一区二区三区 | 久久精品亚洲一区| 性色av蜜臀av| 红桃av永久久久| 90岁老太婆乱淫| 麻豆国产精品视频| 久久人妻无码一区二区| 老司机成人在线| 国产精品1234| 久久综合网导航| 欧美精品一区二区精品网| 99久久久久久久久| 亚洲欧美一区二区视频| 国产一精品一aⅴ一免费| 羞羞答答国产精品www一本| 日韩亚洲一区在线播放| 成人午夜888| 97精品国产97久久久久久| 国产福利免费在线观看| 91精品福利在线一区二区三区 | caoporn97在线视频| 亚洲黄色av网站| 中文字幕乱码人妻无码久久| 一区二区三区高清不卡| 欧美成人午夜精品免费| 国产综合色视频| 国产午夜福利100集发布| sdde在线播放一区二区| wwwxx欧美| 久久麻豆视频| 高清欧美电影在线| av网站在线免费观看| 欧美精品一区二区不卡| 中文字幕日本人妻久久久免费| 亚洲国产综合91精品麻豆| x88av在线| 成人一道本在线| 国产精品自拍视频在线| 日韩视频在线一区二区三区 | 在线视频观看国产| 亚洲图片欧美午夜| 老司机午夜福利视频| 欧美性色综合网| 男人天堂中文字幕| 亚洲少妇30p| 一级黄色毛毛片| 91片黄在线观看| 色诱av手机版| 久久99久久99精品免视看婷婷 | 国产成人av在线影院| 天天操天天摸天天爽| 亚洲伦伦在线| av一区二区三区免费观看| 第一sis亚洲原创| 欧美午夜精品久久久久免费视| 粉嫩精品导航导航| 97人人香蕉| 国产成年精品| 国产视频福利一区| 97久久香蕉国产线看观看| 久久久爽爽爽美女图片| www在线视频| 色妞一区二区三区| 国产日产精品久久久久久婷婷| 日韩大陆毛片av| 午夜精品小视频| 91精品国产一区二区三区蜜臀| 中文字幕在线观看你懂的| 91福利资源站| 天码人妻一区二区三区在线看| 午夜欧美视频在线观看| 久久艹精品视频| 亚洲欧美电影一区二区| 国产真实乱在线更新| 国产精品国产精品国产专区不片| 阿v天堂2014| 国产日韩亚洲欧美综合| 好吊一区二区三区视频| 99这里只有精品| 国产成人精品无码片区在线| 成人黄色在线看| 成年人小视频在线观看| 成人国产免费视频| 农村末发育av片一区二区| 国产成人免费视频网站| 稀缺呦国内精品呦| 成人av资源站| 亚洲乱码国产乱码精品精大量| 97精品视频在线观看自产线路二| 亚洲av永久无码精品| 91麻豆国产精品久久| 色无极影院亚洲| 国产精品无遮挡| 欧美激情图片小说| 亚洲一区二区3| 日产欧产va高清| 欧美网站在线观看| 老熟妇一区二区三区| 91成人看片片| 国产情侣在线播放| 精品奇米国产一区二区三区| 婷婷在线免费观看| 亚洲欧美在线第一页| 日韩精品毛片| 欧美成人黄色小视频| xxxx在线视频| 欧美最猛性xxxxx亚洲精品| 91看片一区| 亚洲一区免费网站| 激情小说亚洲图片| 日韩伦理一区二区三区av在线| 天天做天天爱天天爽综合网| 欧美精品卡一卡二| 麻豆成人在线| 中文字幕第66页| 91在线观看免费视频| 久久久久久成人网| 亚洲精品高清视频在线观看| 久久国产精品系列| 欧美日韩中文字幕一区二区| 精品黑人一区二区三区国语馆| 日韩精品亚洲元码| 黄视频网站在线| 91国内精品久久| 久久精品国产精品亚洲毛片| 国产精品一区二区三区四区五区| 美日韩中文字幕| 亚洲精品偷拍视频| 久热国产精品| 亚洲欧美综合视频| 国产日韩精品一区| 久久久久久国产精品视频| 91国在线观看| 黄色av中文字幕| 久久精品91久久香蕉加勒比| 国产精品蜜芽在线观看| 国产日韩欧美视频| 亚洲传媒在线| 国产真实老熟女无套内射| 美女网站在线免费欧美精品| 波多野结衣影院| 自拍偷拍国产亚洲| 亚洲乱码国产乱码精品| 亚洲成人三级在线| 精品51国产黑色丝袜高跟鞋| 国产成人精品久久久| 白白在线精品| 一级特黄妇女高潮| 丝袜美腿亚洲色图| 一本色道综合久久欧美日韩精品| 亚洲乱码国产乱码精品精的特点 | 大桥未久一区二区三区| 三级欧美在线一区| xxxxxx黄色| 亚洲综合免费观看高清在线观看| 在线观看国产成人| 国产丝袜视频一区| 91资源在线观看| 91久久久一线二线三线品牌| 日韩欧美视频| 国产一区视频免费观看| 99精品热视频| 国产午夜福利片| 日韩免费电影网站| 国产在线更新| 91久久久久久久| 91av精品| 亚洲午夜精品一区| 中文字幕视频一区| 自拍偷拍精品视频| 在线看日韩av| 91综合国产| 午夜午夜精品一区二区三区文| 久久先锋资源| 国产jjizz一区二区三区视频| 欧美视频在线视频| 特黄视频在线观看| 欧美一区二区大胆人体摄影专业网站| 国产精品chinese在线观看| 国产激情片在线观看| 国产高清在线精品| 久久国产在线视频| 精品99一区二区| 阿v视频在线| 久久精品国产精品国产精品污| 国产日韩欧美| 中文字幕成人动漫| 在线观看av一区二区| 第九色区av在线| 国产一区二区丝袜| 综合久久亚洲| 四虎永久免费观看| 无吗不卡中文字幕| 牛牛影视精品影视| 国产精品久久久久av免费| 99免费精品| 日本天堂在线播放| 欧美午夜xxx| chinese偷拍一区二区三区| 91精品国产自产在线老师啪 | 亚洲国产精品成人久久蜜臀| 欧美激情一级欧美精品| 欧美成人午夜77777| 密臀av一区二区三区| 一区精品在线播放| 国产91麻豆视频| 日本精品一区二区三区在线| 国产欧美一区二区三区精品观看| 亚洲国产高清av| 一区二区成人在线观看| 三级视频网站在线| 国产精自产拍久久久久久蜜| 国产尤物精品| 中文字幕在线免费看线人 | 殴美一级特黄aaaaaa| 538国产精品视频一区二区| 成人aaaa| yjizz视频| 欧美怡红院视频| 尤物视频在线看| 日韩理论片在线观看| 国产成人免费xxxxxxxx| 波多野结衣啪啪| 欧美成人小视频| 国产欧美一区| 中国免费黄色片| 欧美三级欧美一级| 波多野结依一区| 一区不卡字幕| 91老师国产黑色丝袜在线| 国产成人av免费看| 日本精品视频在线观看| 欧美日韩三区| 青青草视频成人| 精品国产91久久久久久久妲己| 桃色一区二区| 日本一道本久久| 亚洲天堂免费看|