単語分析
CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 77/78。
チャレンジ
難しいテキスト文字列内の単語を分析する analyze_text という名前の関数を作成してください。
関数は以下の処理を行う必要があります:
- ユニークな単語の数を数える(大文字と小文字を区別しない)
- 2回以上出現するすべての単語を見つける
- すべての回文("level" のように、前から読んでも後ろから読んでも同じになる単語)を特定する
以下の3つのキーを持つ辞書を返してください:
unique_count: ユニークな単語の数(繰り返される単語もそれぞれ1回としてカウントします)repeated_words: 2回以上出現する単語のアルファベット順にソートされたリストpalindromes: 回文である単語のアルファベット順にソートされたリスト
注意点:
- 単語は大文字と小文字を区別せずに扱います(例: "Hello" と "hello" は同じ単語です)
- 単語から句読点
(.,!?:;"())を取り除いてください repeated_wordsとpalindromesの両方のリストをアルファベット順にソートしてください
入力例:
"Madam saw a racecar. Dad said hello hello to mom."
期待される出力:
{
'unique_count': 9,
'repeated_words': ['hello'],
'palindromes': ['a', 'dad', 'madam', 'mom', 'racecar']
}自分で試してみよう
def analyze_text(text):
# ここに解答を記述してください
# 1. テキストを単語に分割し、正規化する
# (小文字に変換し、句読点を除去する)
# 2. 各単語の出現回数をカウントする
# 3. ユニークな単語の数を見つける
# 4. 重複している単語(2回以上出現するもの)を特定する
# 5. 回文になっている単語を見つける
# 6. ソートされたリストを含む辞書形式で結果を返す
pass