Maison développement back-end Tutoriel Python Comment extraire des données textuelles structurées à partir de fichiers PDF avec Python pour le NLP ?

Comment extraire des données textuelles structurées à partir de fichiers PDF avec Python pour le NLP ?

Sep 27, 2023 am 11:17 AM
python nlp pdf提取

如何用Python for NLP从PDF文件中提取结构化文本数据?

Comment extraire des données textuelles structurées de fichiers PDF avec Python pour le NLP ?

Introduction :
Le traitement du langage naturel (NLP) est l'une des branches importantes dans le domaine de l'intelligence artificielle. Son objectif est de permettre aux ordinateurs de comprendre et de traiter le langage humain. Les données textuelles sont la ressource principale de la PNL, donc comment extraire des données textuelles structurées à partir de diverses sources est devenu une tâche fondamentale de la PNL. Les fichiers PDF sont un format de document courant. Cet article explique comment utiliser Python pour le NLP et extraire des données textuelles structurées à partir de fichiers PDF.

Étape 1 : Installer les bibliothèques dépendantes
Tout d'abord, nous devons installer certaines bibliothèques Python nécessaires pour traiter les fichiers PDF. Parmi elles, la plus importante est la bibliothèque PyPDF2, qui peut nous aider à lire et à analyser les fichiers PDF. La bibliothèque PyPDF2 peut être installée avec la commande suivante :

pip install PyPDF2
Copier après la connexion

Étape 2 : Lire le fichier PDF
Avant de commencer, nous devons préparer un exemple de fichier PDF pour la démonstration. Supposons que notre exemple de fichier PDF s'appelle "sample.pdf". Ensuite, nous utiliserons la bibliothèque PyPDF2 pour lire les fichiers PDF comme indiqué ci-dessous :

import PyPDF2

filename = "sample.pdf"

# 打开PDF文件
pdf_file = open(filename, 'rb')

# 创建一个PDF阅读器
pdf_reader = PyPDF2.PdfReader(pdf_file)

# 获取PDF文件中的页数
num_pages = pdf_reader.numPages

# 逐页提取文本
text_data = []
for page in range(num_pages):
    page_obj = pdf_reader.getPage(page)
    text_data.append(page_obj.extractText())

# 关闭PDF文件
pdf_file.close()
Copier après la connexion

Dans le code ci-dessus, nous ouvrons d'abord le fichier PDF, puis créons un lecteur PDF à l'aide de la bibliothèque PyPDF2. Après cela, nous obtenons le numéro de page du fichier PDF et utilisons une boucle pour extraire le contenu du texte page par page et stocker les données texte extraites dans une liste. Enfin, pensez à fermer le fichier PDF.

Étape 3 : Nettoyer les données texte
Les données texte extraites des fichiers PDF contiennent souvent un grand nombre de caractères vides et d'autres caractères spéciaux non pertinents. Par conséquent, nous devons nettoyer et prétraiter les données texte avant de passer à l'étape suivante. Voici un exemple de fonction simple de nettoyage de texte :

import re

def clean_text(text):
    # 去除多余的空白字符
    text = re.sub('s+', ' ', text)
    
    # 去除特殊字符
    text = re.sub('[^A-Za-z0-9]+', ' ', text)
    
    return text
    
# 清理文本数据
cleaned_text_data = []
for text in text_data:
    cleaned_text = clean_text(text)
    cleaned_text_data.append(cleaned_text)
Copier après la connexion

Dans le code ci-dessus, nous utilisons d'abord des expressions régulières pour supprimer les caractères d'espacement supplémentaires, puis supprimons les caractères spéciaux. Bien entendu, la méthode de nettoyage du texte peut être ajustée en fonction de la situation réelle.

Étape 4 : Traitement ultérieur des données texte
Dans les étapes ci-dessus, nous avons extrait les données texte structurées du fichier PDF et effectué un nettoyage simple. Cependant, en fonction des exigences spécifiques de l'application, nous devrons peut-être effectuer un traitement de texte supplémentaire. Ici, nous présenterons brièvement deux tâches courantes de traitement de texte : les statistiques de fréquence des mots et l'extraction de mots clés.

Statistiques de fréquence des mots :
Les statistiques de fréquence des mots sont l'une des tâches courantes en PNL, et leur objectif est de compter le nombre de fois que chaque mot apparaît dans le texte. Voici un exemple simple de statistiques de fréquence des mots :

from collections import Counter

# 将文本数据拼接为一个字符串
combined_text = ' '.join(cleaned_text_data)

# 分词
words = combined_text.split()

# 统计词频
word_freq = Counter(words)

# 打印出现频率最高的前10个词语
print(word_freq.most_common(10))
Copier après la connexion

Extraction de mots-clés :
L'extraction de mots-clés est une tâche importante en PNL, et son objectif est d'extraire les mots-clés les plus représentatifs des données textuelles. En Python, nous pouvons utiliser la bibliothèque textrank4zh pour l'extraction de mots-clés. L'exemple est le suivant :

from textrank4zh import TextRank4Keyword

# 创建TextRank4Keyword对象
tr4w = TextRank4Keyword()

# 提取关键词
tr4w.analyze(text=combined_text, lower=True, window=2)

# 打印关键词
for item in tr4w.get_keywords(10, word_min_len=2):
    print(item.word)
Copier après la connexion

Dans le code ci-dessus, nous créons d'abord un objet TextRank4Keyword, puis appelons la méthode analyse() pour extraire les mots-clés. Après cela, nous pouvons obtenir le nombre spécifié de mots-clés via la méthode get_keywords(), la valeur par défaut est les 10 premiers mots-clés.

Conclusion :
Cet article explique comment utiliser Python pour le traitement du langage naturel (NLP) et extraire des données textuelles structurées à partir de fichiers PDF. Nous avons utilisé la bibliothèque PyPDF2 pour lire et analyser des fichiers PDF, puis avons effectué un nettoyage et un prétraitement de texte simples. Enfin, nous avons également présenté comment effectuer des statistiques de fréquence des mots et une extraction de mots clés. Je pense que grâce à l'introduction de cet article, les lecteurs peuvent maîtriser comment extraire des données textuelles structurées à partir de fichiers PDF et les appliquer davantage aux tâches de traitement du langage naturel.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment intégrer efficacement les services Node.js ou Python sous l'architecture LAMP? Comment intégrer efficacement les services Node.js ou Python sous l'architecture LAMP? Apr 01, 2025 pm 02:48 PM

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Quelle est la raison pour laquelle les fichiers de stockage persistants de pipeline ne peuvent pas être écrits lors de l'utilisation du robot Scapy? Quelle est la raison pour laquelle les fichiers de stockage persistants de pipeline ne peuvent pas être écrits lors de l'utilisation du robot Scapy? Apr 01, 2025 pm 04:03 PM

Lorsque vous utilisez Scapy Crawler, la raison pour laquelle les fichiers de stockage persistants ne peuvent pas être écrits? Discussion Lorsque vous apprenez à utiliser Scapy Crawler pour les robots de données, vous rencontrez souvent un ...

Quelle est la raison pour laquelle le pool de processus Python gère les demandes TCP simultanées et fait coincé le client? Quelle est la raison pour laquelle le pool de processus Python gère les demandes TCP simultanées et fait coincé le client? Apr 01, 2025 pm 04:09 PM

Python Process Pool gère les demandes TCP simultanées qui font coincé le client. Lorsque vous utilisez Python pour la programmation réseau, il est crucial de gérer efficacement les demandes TCP simultanées. ...

Python multiplateform de bureau de bureau de bureau: quelle bibliothèque GUI est la meilleure pour vous? Python multiplateform de bureau de bureau de bureau: quelle bibliothèque GUI est la meilleure pour vous? Apr 01, 2025 pm 05:24 PM

Choix de la bibliothèque de développement d'applications de bureau multiplateforme Python De nombreux développeurs Python souhaitent développer des applications de bureau pouvant s'exécuter sur Windows et Linux Systems ...

Comment afficher les fonctions originales encapsulées en interne par Python Functools.Partial Objet? Comment afficher les fonctions originales encapsulées en interne par Python Functools.Partial Objet? Apr 01, 2025 pm 04:15 PM

Explorez profondément la méthode de visualisation de Python Functools.Partial Objet dans Functools.Partial en utilisant Python ...

Dessin graphique de sablier Python: comment éviter les erreurs variables non définies? Dessin graphique de sablier Python: comment éviter les erreurs variables non définies? Apr 01, 2025 pm 06:27 PM

Précision avec Python: Source de sablier Dessin graphique et vérification d'entrée Cet article résoudra le problème de définition variable rencontré par un novice Python dans le programme de dessin graphique de sablier. Code...

Comment optimiser le traitement des images à haute résolution dans Python pour trouver des zones circulaires blanches précises? Comment optimiser le traitement des images à haute résolution dans Python pour trouver des zones circulaires blanches précises? Apr 01, 2025 pm 06:12 PM

Comment gérer les images haute résolution à Python pour trouver des zones blanches? Traitement d'une image haute résolution de 9000x7000 pixels, comment trouver avec précision deux de l'image ...

Comment compter et trier efficacement de grands ensembles de données de produit dans Python? Comment compter et trier efficacement de grands ensembles de données de produit dans Python? Apr 01, 2025 pm 08:03 PM

Conversion et statistiques de données: traitement efficace des grands ensembles de données Cet article introduira en détail comment convertir une liste de données contenant des informations sur le produit en une autre contenant ...

See all articles