Menu
Coddy logo textTech

単語分析

CoddyのPythonジャーニー「ロジックとフロー」セクションの一部。レッスン 77/78。

challenge icon

チャレンジ

難しい

analyze_textという名前の関数を作成し、テキスト文字列内のwordsを分析します。

この関数は次の処理を行う必要があります。

  1. unique wordsを数える(大文字と小文字を区別しない)
  2. 2回以上appearingするすべてのwordsをFindする
  3. すべてのpalindrome words(前から読んでも後ろから読んでも同じwords。例: "level")をIdentifyする

3つのキーを持つdictionaryをReturnします。

  • unique_count: unique wordsのnumber(repeated wordsもそれぞれ1回としてcountする)
  • repeated_words: 2回以上appearingするwordsのsortedリスト
  • palindromes: palindrome wordsのsortedリスト

Notes:

  • wordsは大文字と小文字を区別しないものとして扱います(例: "Hello"と"hello"は同じwordです)
  • wordsから任意のpunctuation (.,!?:;"())をremoveします
  • repeated_wordspalindromesの両方のlistsをアルファベット順にSortします

Example Input:

"Madam saw a racecar. Dad said hello hello to mom."

Expected Output:

{
    'unique_count': 9,
    'repeated_words': ['hello'],
    'palindromes': ['a', 'dad', 'madam', 'mom', 'racecar']
}

自分で試してみよう

def analyze_text(text):
    # ここに解答を書いてください
    
    # 1. テキストを単語に分割して正規化する
    # (小文字にして句読点を取り除く)
    
    # 2. 各単語の出現回数を数える
    
    # 3. ユニークな単語の数を求める
    
    # 4. 繰り返される単語を特定する(2回以上出現するもの)
    
    # 5. 回文の単語を見つける
    
    # 6. ソートされたリストを含む辞書で結果を返す
    pass

ロジックとフローのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ