Maison  >  Article  >  développement back-end  >  Comment extraire et analyser le texte de plusieurs fichiers PDF avec Python pour le NLP ?

Comment extraire et analyser le texte de plusieurs fichiers PDF avec Python pour le NLP ?

PHPz
PHPzoriginal
2023-09-27 17:45:42625parcourir

如何用Python for NLP提取并分析多个PDF文件中的文本?

Comment extraire et analyser le texte de plusieurs fichiers PDF avec Python pour le NLP ?

Résumé :
Avec l'avènement de l'ère du Big Data, le traitement du langage naturel (NLP) est devenu l'un des moyens importants pour résoudre des données textuelles massives. En tant que format de document courant, le PDF contient des informations textuelles riches. La manière d'extraire et d'analyser le texte des fichiers PDF est donc devenue une tâche clé dans le domaine de la PNL. Cet article expliquera comment utiliser le langage de programmation Python et les bibliothèques NLP associées pour extraire et analyser le texte de plusieurs fichiers PDF, tout en donnant des exemples de code spécifiques.

  1. Préparation
    Avant de commencer, nous devons nous assurer que Python et les bibliothèques nécessaires suivantes ont été installées : PyPDF2, nltk, pandas. Ces bibliothèques peuvent être installées à l'aide de la commande pip :
pip install PyPDF2
pip install nltk
pip install pandas
  1. PDF Text Extraction
    Python fournit de nombreuses bibliothèques pour traiter les fichiers PDF, parmi lesquelles PyPDF2 est une bibliothèque puissante qui peut être utilisée pour extraire du texte à partir de PDF. Vous trouverez ci-dessous un exemple de code simple pour extraire le texte d'un seul fichier PDF :
import PyPDF2

def extract_text_from_pdf(file_path):
    with open(file_path, 'rb') as file:
        pdf_reader = PyPDF2.PdfFileReader(file)
        text = ""
        for page_num in range(pdf_reader.numPages):
            page = pdf_reader.getPage(page_num)
            text += page.extractText()
        return text

pdf_file_path = "example.pdf"
text = extract_text_from_pdf(pdf_file_path)
print(text)
  1. Extraire le texte de plusieurs fichiers PDF par lots
    Si nous avons plusieurs fichiers PDF à traiter, nous pouvons utiliser une méthode similaire pour extraire le texte par lots. Voici un exemple de code pour extraire le texte de tous les fichiers PDF dans un dossier et enregistrer les résultats dans un fichier texte :
import os

def extract_text_from_folder(folder_path):
    text_dict = {}
    for file_name in os.listdir(folder_path):
        if file_name.endswith(".pdf"):
            file_path = os.path.join(folder_path, file_name)
            text = extract_text_from_pdf(file_path)
            text_dict[file_name] = text
    return text_dict

pdf_folder_path = "pdf_folder"
text_dict = extract_text_from_folder(pdf_folder_path)

output_file_path = "output.txt"
with open(output_file_path, 'w', encoding='utf-8') as file:
    for file_name, text in text_dict.items():
        file.write(file_name + "
")
        file.write(text + "
")
  1. Prétraitement et analyse du texte
    Une fois que nous avons extrait le texte des fichiers PDF, nous effectuons le prétraitement du texte et une analyse peut être effectuée. Vous trouverez ci-dessous un exemple de code pour la segmentation des mots et le calcul de la fréquence des mots du texte extrait :
import nltk
import pandas as pd
from nltk.tokenize import word_tokenize

nltk.download('punkt')

def preprocess_text(text):
    tokens = word_tokenize(text)  # 分词
    tokens = [token.lower() for token in tokens if token.isalpha()]  # 去除标点符号和数字,转换为小写
    return tokens

# 对提取的文本进行预处理和分析
all_tokens = []
for text in text_dict.values():
    tokens = preprocess_text(text)
    all_tokens.extend(tokens)

# 计算词频
word_freq = nltk.FreqDist(all_tokens)
df = pd.DataFrame.from_dict(word_freq, orient='index', columns=['Frequency'])
df.sort_values(by='Frequency', ascending=False, inplace=True)
print(df.head(10))

Résumé :
En utilisant le langage de programmation Python et les bibliothèques NLP associées, nous pouvons facilement extraire et analyser le texte dans plusieurs fichiers PDF. Ce qui précède donne des exemples de code spécifiques, j'espère que cela sera utile aux lecteurs. Les lecteurs peuvent effectuer un traitement et une analyse de texte supplémentaires en fonction des besoins réels, tels que le balisage d'une partie du discours, l'analyse des sentiments, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn