Maison  >  Article  >  développement back-end  >  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 ?

WBOY
WBOYoriginal
2023-09-27 11:17:021484parcourir

如何用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

É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()

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)

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))

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)

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:
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