Maison  >  Article  >  développement back-end  >  Comment extraire des phrases clés de fichiers PDF à l'aide de Python pour le NLP ?

Comment extraire des phrases clés de fichiers PDF à l'aide de Python pour le NLP ?

WBOY
WBOYoriginal
2023-09-28 11:36:271118parcourir

如何利用Python for NLP从PDF文件中提取关键句子?

Comment utiliser Python pour le PNL pour extraire des phrases clés de fichiers PDF ?

Introduction :
Avec le développement rapide des technologies de l'information, le traitement du langage naturel (NLP) joue un rôle important dans des domaines tels que l'analyse de texte, l'extraction d'informations et la traduction automatique. Dans les applications pratiques, il est souvent nécessaire d'extraire des informations clés à partir d'une grande quantité de données textuelles, par exemple en extrayant des phrases clés à partir de fichiers PDF. Cet article explique comment utiliser le package NLP de Python pour extraire des phrases clés de fichiers PDF et fournit des exemples de code détaillés.

Étape 1 : Installez les bibliothèques Python requises
Avant de commencer, nous devons installer plusieurs bibliothèques Python pour faciliter le traitement de texte ultérieur et l'analyse des fichiers PDF.

1. Installez la bibliothèque nltk :
Entrez la commande suivante sur la ligne de commande pour installer la bibliothèque nltk :

pip install nltk

2 Installez la bibliothèque pdfminer :
Entrez la commande suivante sur la ligne de commande pour installer la bibliothèque pdfminer :

.
pip install pdfminer.six

Étape 2 : Analyser les fichiers PDF
Tout d'abord, nous devons convertir le fichier PDF au format texte brut. La bibliothèque pdfminer nous offre la fonctionnalité nécessaire pour analyser les fichiers PDF.

Ce qui suit est une fonction qui peut convertir des fichiers PDF en texte brut :

from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from io import StringIO

def convert_pdf_to_text(file_path):
    resource_manager = PDFResourceManager()
    string_io = StringIO()
    laparams = LAParams()
    device = TextConverter(resource_manager, string_io, laparams=laparams)
    interpreter = PDFPageInterpreter(resource_manager, device)

    with open(file_path, 'rb') as file:
        for page in PDFPage.get_pages(file):
            interpreter.process_page(page)

    text = string_io.getvalue()
    device.close()
    string_io.close()

    return text

Étape 3 : Extraire les phrases clés
Ensuite, nous devons utiliser la bibliothèque nltk pour extraire les phrases clés. nltk fournit des fonctions riches pour la tokenisation de texte, la segmentation de mots et la segmentation de phrases.

Ce qui suit est une fonction qui peut extraire des phrases clés du texte donné :

import nltk

def extract_key_sentences(text, num_sentences):
    sentences = nltk.sent_tokenize(text)
    word_frequencies = {}
    for sentence in sentences:
        words = nltk.word_tokenize(sentence)
        for word in words:
            if word not in word_frequencies:
                word_frequencies[word] = 1
            else:
                word_frequencies[word] += 1

    sorted_word_frequencies = sorted(word_frequencies.items(), key=lambda x: x[1], reverse=True)
    top_sentences = [sentence for (sentence, _) in sorted_word_frequencies[:num_sentences]]

    return top_sentences

Étape 4 : Exemple de code complet
Ce qui suit est l'exemple de code complet qui montre comment extraire des phrases clés d'un fichier PDF :

from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from io import StringIO
import nltk

def convert_pdf_to_text(file_path):
    resource_manager = PDFResourceManager()
    string_io = StringIO()
    laparams = LAParams()
    device = TextConverter(resource_manager, string_io, laparams=laparams)
    interpreter = PDFPageInterpreter(resource_manager, device)

    with open(file_path, 'rb') as file:
        for page in PDFPage.get_pages(file):
            interpreter.process_page(page)

    text = string_io.getvalue()
    device.close()
    string_io.close()

    return text

def extract_key_sentences(text, num_sentences):
    sentences = nltk.sent_tokenize(text)
    word_frequencies = {}
    for sentence in sentences:
        words = nltk.word_tokenize(sentence)
        for word in words:
            if word not in word_frequencies:
                word_frequencies[word] = 1
            else:
                word_frequencies[word] += 1

    sorted_word_frequencies = sorted(word_frequencies.items(), key=lambda x: x[1], reverse=True)
    top_sentences = [sentence for (sentence, _) in sorted_word_frequencies[:num_sentences]]

    return top_sentences

# 示例使用
pdf_file = 'example.pdf'
text = convert_pdf_to_text(pdf_file)
key_sentences = extract_key_sentences(text, 5)
for sentence in key_sentences:
    print(sentence)

Résumé :
Cet article présente la méthode d'extraction de phrases clés à partir de fichiers PDF à l'aide du package NLP de Python. En convertissant les fichiers PDF en texte brut via la bibliothèque pdfminer et en utilisant les fonctions de tokenisation et de segmentation de phrases de la bibliothèque nltk, nous pouvons facilement extraire des phrases clés. Cette méthode est largement utilisée dans des domaines tels que l’extraction d’informations, la synthèse de textes et la construction de graphes de connaissances. J'espère que le contenu de cet article vous sera utile et pourra être utilisé dans des applications pratiques.

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