NLP 用 Python を使用して PDF ファイルから重要な文を抽出するにはどうすればよいですか?
はじめに:
情報技術の急速な発展に伴い、自然言語処理 (NLP) はテキスト分析、情報抽出、機械翻訳などの分野で重要な役割を果たしています。実際のアプリケーションでは、PDF ファイルから重要な文を抽出するなど、大量のテキスト データから重要な情報を抽出することが必要になることがよくあります。この記事では、Python の NLP パッケージを使用して PDF ファイルから重要な文を抽出する方法と、詳細なコード例を紹介します。
ステップ 1: 必要な Python ライブラリをインストールする
始める前に、その後のテキスト処理と PDF ファイルの解析を容易にするために、いくつかの Python ライブラリをインストールする必要があります。
1. nltk ライブラリをインストールします:
コマンド ラインに次のコマンドを入力して、nltk ライブラリをインストールします:
pip install nltk
2. pdfminer ライブラリをインストールします:
次のコマンドを入力しますコマンド ラインで pdfminer ライブラリをインストールするコマンド:
pip install pdfminer.six
ステップ 2: PDF ファイルを解析する
まず、PDF ファイルをプレーン テキスト形式に変換する必要があります。 pdfminer ライブラリは、PDF ファイルを解析する機能を提供します。
次は 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 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
ステップ 3: キー センテンスを抽出する
次に、nltk ライブラリを使用してキー センテンスを抽出する必要があります。 nltk は、テキストのトークン化、単語の分割、および文の分割のための豊富な機能を提供します。
以下は、指定されたテキストから重要な文を抽出できる関数です:
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
ステップ 4: 完全なサンプル コード
以下は、テキストを抽出する方法を示す完全なサンプル コードです。 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)
概要:
この記事では、Python の NLP パッケージを使用して PDF ファイルからキーセンテンスを抽出する方法を紹介します。 pdfminer ライブラリを通じて PDF ファイルをプレーン テキストに変換し、nltk ライブラリのトークン化機能と文分割機能を使用することで、重要な文を簡単に抽出できます。この手法は、情報抽出、テキスト要約、ナレッジグラフ構築などの分野で広く使用されています。この記事の内容が皆様のお役に立ち、実践に役立てていただければ幸いです。
以上がNLP 用 Python を使用して PDF ファイルからキーセンテンスを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。