分析コードをまとめていく.テキスト内の単語の出現位置編


前回に続いて,コードをまとめる.

今回はテキスト内の単語の出現位置にフォーカスをして分析をする.

import matplotlib.pyplot as plt
import numpy as np
import nltk
from collections import Counter

nltk.download('punkt')

def plot_word_positions(text, top_n=100):
    """
    テキスト内の上位N単語の出現位置をプロットする関数
    """
    # テキストをトークン化
    tokens = nltk.word_tokenize(text)
    
    # 単語の頻度をカウント
    word_counts = Counter(tokens)
    
    # 上位N単語を抽出
    most_common_words = [word for word, count in word_counts.most_common(top_n)]
    
    # 上位N単語の出現位置を取得
    token_indices = {token: [] for token in most_common_words}
    for index, token in enumerate(tokens):
        if token in most_common_words:
            token_indices[token].append(index)
    
    # プロットの作成
    plt.figure(figsize=(100, 100))
    for word, indices in token_indices.items():
        plt.scatter(indices, [word] * len(indices), label=word, alpha=0.6)
    
    plt.title('Top 100 Word Position Plot')
    plt.xlabel('Position in Text')
    plt.ylabel('Words')
    plt.show()

# テキストファイルの読み込み
def read_text_file(file_path):
    """
    テキストファイルを読み込み、内容を返す関数
    """
    with open(file_path, 'r', encoding='utf-8') as file:
        return file.read()



# 上位100単語の出現位置のプロット
plot_word_positions(full_text, top_n=100)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です