分析コードのまとめていく.基本統計量編


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

今回はテキストデータの基本統計量を確認する.

確認項目は下記.

0 Unique Words

1 Total Words

2 Mean Sentence Length

3 Median Sentence Length

4 Std Sentence Length

5 Mean Word Length

6 Median Word Length

7 Std Word Length
+ Top 10 Word Frequency

import pandas as pd
from collections import Counter
import numpy as np

def tokenize(text):
    """
    テキストをトークンに分割する関数
    """
    # スペースで分割して単語のリストを作成
    tokens = text.split()
    return tokens

def analyze_text_statistics(text):
    """
    テキストの統計的解析を行う関数
    """
    tokens = tokenize(text)
    
    # 単語の出現頻度を計算
    word_freq = Counter(tokens)
    
    # 一意な単語数を計算
    unique_words = len(word_freq)
    
    # 総単語数を計算
    total_words = len(tokens)
    
    # 文章の長さ(単語数)を計算
    sentence_lengths = [len(sentence.split()) for sentence in text.split('.') if sentence]
    
    # 基本統計量を計算
    sentence_lengths_array = np.array(sentence_lengths)
    mean_length = np.mean(sentence_lengths_array)
    median_length = np.median(sentence_lengths_array)
    std_length = np.std(sentence_lengths_array)
    
    # 単語の長さの基本統計量を計算
    word_lengths = [len(word) for word in tokens]
    word_lengths_array = np.array(word_lengths)
    mean_word_length = np.mean(word_lengths_array)
    median_word_length = np.median(word_lengths_array)
    std_word_length = np.std(word_lengths_array)
    
    return {
        "word_freq": word_freq,
        "unique_words": unique_words,
        "total_words": total_words,
        "sentence_lengths": sentence_lengths,
        "mean_length": mean_length,
        "median_length": median_length,
        "std_length": std_length,
        "mean_word_length": mean_word_length,
        "median_word_length": median_word_length,
        "std_word_length": std_word_length
    }

def display_statistics(stats):
    """
    統計情報を表示する関数
    """
    # 統計情報をデータフレームにまとめる
    data = {
        "Statistic": ["Unique Words", "Total Words", "Mean Sentence Length", "Median Sentence Length", 
                      "Std Sentence Length", "Mean Word Length", "Median Word Length", "Std Word Length"],
        "Value": [stats["unique_words"], stats["total_words"], stats["mean_length"], 
                  stats["median_length"], stats["std_length"], stats["mean_word_length"], 
                  stats["median_word_length"], stats["std_word_length"]]
    }
    
    df = pd.DataFrame(data)
    
    print("Text Statistics:")
    print(df)
    print("\nTop 10 Word Frequency:")
    word_freq_df = pd.DataFrame(stats["word_freq"].most_common(10), columns=["Word", "Frequency"])
    print(word_freq_df)


# テキストの統計的解析
stats = analyze_text_statistics(processed_text)

# 統計情報の表示
display_statistics(stats)

コメントを残す

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