cari
Rumahpembangunan bahagian belakangTutorial PythonBagaimana untuk mengekstrak ayat utama daripada fail PDF menggunakan Python untuk NLP?

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

Bagaimana cara menggunakan Python untuk NLP untuk mengekstrak ayat utama daripada fail PDF?

Pengenalan:
Dengan perkembangan pesat teknologi maklumat, Natural Language Processing (NLP) memainkan peranan penting dalam bidang seperti analisis teks, pengekstrakan maklumat dan terjemahan mesin. Dalam aplikasi praktikal, selalunya perlu untuk mengekstrak maklumat penting daripada sejumlah besar data teks, seperti mengekstrak ayat utama daripada fail PDF. Artikel ini akan memperkenalkan cara menggunakan pakej NLP Python untuk mengekstrak ayat utama daripada fail PDF, dan memberikan contoh kod terperinci.

Langkah 1: Pasang perpustakaan Python yang diperlukan
Sebelum kita mula, kita perlu memasang beberapa perpustakaan Python untuk memudahkan pemprosesan teks seterusnya dan penghuraian fail PDF.

1. Pasang perpustakaan nltk:
Masukkan arahan berikut pada baris arahan untuk memasang perpustakaan nltk:

pip install nltk

2 Pasang perpustakaan pdfminer:
Masukkan arahan berikut pada baris arahan untuk memasang perpustakaan pdfminer:

.
pip install pdfminer.six

Langkah 2: Menghuraikan fail PDF
Mula-mula, kita perlu menukar fail PDF kepada format teks biasa. Pustaka pdfminer memberikan kami fungsi untuk menghuraikan fail PDF.

Berikut ialah fungsi yang boleh menukar fail PDF kepada teks biasa:

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

Langkah 3: Ekstrak ayat utama
Seterusnya, kita perlu menggunakan perpustakaan nltk untuk mengekstrak ayat utama. nltk menyediakan fungsi yang kaya untuk tokenisasi, pembahagian perkataan dan pembahagian ayat teks.

Berikut ialah fungsi yang boleh mengekstrak ayat utama daripada teks yang diberikan:

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

Langkah 4: Lengkapkan kod contoh
Berikut ialah contoh kod lengkap yang menunjukkan cara mengekstrak ayat utama daripada fail 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)

Ringkasan :
Artikel ini memperkenalkan kaedah mengekstrak ayat utama daripada fail PDF menggunakan pakej NLP Python. Dengan menukar fail PDF kepada teks biasa melalui perpustakaan pdfminer, dan menggunakan tokenisasi dan fungsi segmentasi ayat perpustakaan nltk, kami boleh mengekstrak ayat utama dengan mudah. Kaedah ini digunakan secara meluas dalam bidang seperti pengekstrakan maklumat, rumusan teks dan pembinaan graf pengetahuan. Saya harap kandungan artikel ini berguna kepada anda dan boleh digunakan dalam aplikasi praktikal.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak ayat utama daripada fail PDF menggunakan Python untuk NLP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Menguruskan panggilan balik pemberitahuan pyads dan pemprosesan data berskala besarMenguruskan panggilan balik pemberitahuan pyads dan pemprosesan data berskala besarAug 11, 2025 pm 08:54 PM

Artikel ini bertujuan untuk meneroka cara memproses data panggilan balik pemberitahuan iklan dari PLC dalam aplikasi PYADS, terutamanya apabila memproses data frekuensi besar dan tinggi, elakkan menggunakan pembolehubah global, dan menggunakan kaedah enkapsulasi kelas pythonic untuk menguruskan keadaan. Pada masa yang sama, artikel itu juga akan menjelaskan secara mendalam bagaimana untuk mengoptimumkan penukaran data byte kepada jenis Python untuk meningkatkan prestasi pemprosesan data berskala besar.

Cara mencari dan mengira pasangan yang tidak teratur dan tiga kali ganda di Pandas DataFrameCara mencari dan mengira pasangan yang tidak teratur dan tiga kali ganda di Pandas DataFrameAug 11, 2025 pm 08:33 PM

Tutorial ini memperincikan bagaimana untuk mengenal pasti dan mengira kekerapan kejadian kombinasi yang tidak teratur (termasuk pasangan dan tiga) lajur individu dalam data Pandas untuk kumpulan tertentu (seperti klasifikasi). Artikel ini akan menghasilkan kombinasi melalui iTerTools.combinations, menggabungkan Pandas 'Groupby, Exploit, Value_Counts, dan mengubah fungsi untuk merealisasikan pengiraan kombinasi dan pengiraan peratusan relatif mereka dalam kategori masing -masing, memberikan contoh kod dan langkah -langkah operasi yang jelas, yang bertujuan untuk membantu pengguna menganalisis corak dalam data berstruktur.

Gunakan BeautifulSoup untuk mencari elemen HTML dengan tepat: Selesaikan masalah komen dan nama kelas yang sepadanGunakan BeautifulSoup untuk mencari elemen HTML dengan tepat: Selesaikan masalah komen dan nama kelas yang sepadanAug 11, 2025 pm 08:12 PM

Tutorial ini bertujuan untuk menyelesaikan masalah yang unsur -unsur kelihatan wujud tetapi tidak dapat ditangkap oleh kaedah seperti find_all apabila menghuraikan html menggunakan BeautifulSoup. Kandungan teras termasuk: mengenal pasti dan memproses elemen yang tersembunyi dalam komen HTML, dengan betul memadankan nama kelas CSS dengan parameter kelas_, dan kedudukan elemen yang cekap menggunakan pemilih CSS. Melalui kod contoh, pembaca dapat menguasai penggunaan lanjutan yang indah dan meningkatkan kecekapan dan ketepatan web merangkak.

Cara menulis untuk gelung dan semasa gelung di pythonCara menulis untuk gelung dan semasa gelung di pythonAug 11, 2025 pm 08:11 PM

ForloopsareusedfordefiniteiterationWhenthenumberOfrepetitionSiskNOwnorwheniteratingoverasequence, whilewhileloopsareedforindefiniteiterationwhen

Memaksimumkan strategi pemilihan nilai cutoff kebarangkalian untuk produk tensor dotMemaksimumkan strategi pemilihan nilai cutoff kebarangkalian untuk produk tensor dotAug 11, 2025 pm 07:54 PM

Artikel ini meneroka cara memaksimumkan produk DOT unsur-oleh-elemen antara kedua-dua yang diberikan tensor sasaran binari dan tensor ramalan kebarangkalian dengan menetapkan cutoff kebarangkalian. Kajian mendapati bahawa apabila matlamatnya adalah untuk memaksimumkan produk DOT sahaja, nilai pemotongan kebarangkalian optimum harus ditetapkan kepada 0.0. Ini bermakna bahawa semua ramalan kebarangkalian akan ditukar kepada 1, memastikan bahawa produk DOT adalah sama dengan jumlah semua "1s" dalam tensor sasaran, mencapai maksimum teoritis. Artikel ini menghuraikan kesimpulan ini secara terperinci melalui analisis prinsip dan contoh kod, dan mengingatkan bahawa dalam aplikasi pembelajaran mesin sebenar, sebagai tambahan kepada produk DOT, petunjuk penilaian lain yang lebih komprehensif biasanya perlu dipertimbangkan.

Contoh Python TimeItContoh Python TimeItAug 11, 2025 pm 07:39 PM

Modul TimeIt digunakan untuk mengukur masa pelaksanaan kod. 1. Gunakan TimeIt.TimeIt () untuk mengukur ungkapan untuk menjalankan 1 juta kali secara lalai dan mengembalikan jumlah masa yang memakan masa; 2. Tentukan bilangan hukuman mati melalui parameter nombor untuk menyesuaikan diri dengan operasi yang memakan masa; 3. Gunakan lambda untuk mengelakkan pelaksanaan segera semasa menguji fungsi; 4. Gunakan timeit.timer untuk menyesuaikan kod persediaan seperti modul import; 5. Jalankan Python-Mtimeit dalam baris arahan untuk menguji secara langsung prestasi pernyataan, dan hasilnya adalah nilai terbaik di antara beberapa kali untuk mengurangkan gangguan, yang akhirnya membantu membandingkan prestasi prestasi dengan tepat pelaksanaan yang berbeza.

Rujukan dan Pengurusan Dinamik Parameter Rantai dalam Peraturan SnakemakeRujukan dan Pengurusan Dinamik Parameter Rantai dalam Peraturan SnakemakeAug 11, 2025 pm 07:33 PM

Artikel ini membincangkan cara yang betul untuk menangani saling ketergantungan parameter (params) dalam peraturan Snakemake. Apabila nilai parameter perlu dijana secara dinamik berdasarkan parameter atau wildcard lain, rujukan rantai terus dalam blok param akan membawa kepada kesilapan. Artikel ini akan memperkenalkan secara terperinci bagaimana untuk merangkum logik parameter dengan menentukan fungsi yang boleh dipanggil untuk memastikan parameter dapat dikira dengan betul dan dinamik apabila tugas dilaksanakan, dengan itu mencapai kebergantungan parameter yang kompleks.

Mekanisme pemberitahuan pyad dan tutorial pemprosesan data yang cekapMekanisme pemberitahuan pyad dan tutorial pemprosesan data yang cekapAug 11, 2025 pm 07:21 PM

Tutorial ini membincangkan secara terperinci bagaimana menggunakan mekanisme pemberitahuan perpustakaan PYADS untuk memproses sejumlah besar data masa nyata dari PLC. Artikel ini memperkenalkan kaedah menguruskan keadaan dalaman dan data terkumpul melalui fungsi panggil balik kelas enkapsulasi, dengan berkesan mengelakkan penggunaan pembolehubah global. Pada masa yang sama, tutorial menerangkan strategi mendalam untuk mengoptimumkan prestasi parsing data, termasuk menggunakan RETURN_CTYPES = benar digabungkan dengan NUMPY untuk penukaran data batch, dan menyediakan contoh praktikal untuk memantau perubahan keadaan PLC, yang bertujuan untuk membantu pemaju membina aplikasi pemerolehan data industri yang mantap dan tinggi.

See all articles

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)