分析コードのまとめていく.基本統計量編
前回に続いて,コードをまとめる.
今回はテキストデータの基本統計量を確認する.
確認項目は下記.
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)