- ライブラリのインストール: まず、Pythonのパッケージマネージャー(pip)を使用して、必要なライブラリをインストールします。以下のコマンドを実行してください。
pip install gensim
pip install sumy
- テキストの前処理: キーワード抽出と要約を行う前に、テキストデータを前処理する必要があります。これには、テキストのクリーニング、トークン化、ストップワードの除去などが含まれます。以下は、テキストを前処理するための基本的なコード例です。
import re
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
def preprocess_text(text):
# テキストのクリーニング
text = re.sub(r'\d+', '', text) # 数字の削除
text = text.lower() # 小文字化
text = re.sub(r'\s+', ' ', text) # 余分な空白の削除
# トークン化
tokens = word_tokenize(text)
# ストップワードの除去
stop_words = set(stopwords.words('english'))
tokens = [token for token in tokens if token not in stop_words]
return tokens
- TextRankアルゴリズムの実装: TextRankアルゴリズムは、グラフベースのランキングアルゴリズムであり、テキスト内の重要なキーワードやフレーズを抽出するために使用されます。以下は、gensimライブラリを使用してTextRankアルゴリズムを実装する基本的なコード例です。
from gensim.summarization import keywords
def extract_keywords(text):
tokens = preprocess_text(text)
keyword_list = keywords(' '.join(tokens), scores=True, lemmatize=True)
return [keyword for keyword, score in keyword_list]
- 要約の実装: 要約は、テキストの重要な内容を短くまとめるプロセスです。sumyライブラリは、TextRankを使用してテキストを要約するための便利なツールを提供しています。以下は、sumyライブラリを使用してテキストを要約する基本的なコード例です。
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.text_rank import TextRankSummarizer
def summarize_text(text, num_sentences=3):
parser = PlaintextParser.from_string(text, Tokenizer('english'))
summarizer = TextRankSummarizer()
summary_sentences = summarizer(parser.document, num_sentences)
return ' '.join([str(sentence) for sentence in summary_sentences])
これらのコード例を使用することで、テキストデータからキーワードを抽出し、要約を作成することができます。また、必要に応じてコードをカスタマイズして拡張することもできます。