Python で音節を数える

Lakshay Kapoor 2023年1月30日
  1. Python で if ステートメントを使用して音節をカウントする
  2. Python で辞書とリスト内包表記を使用して音節を数える
  3. 音節を数えるために Python の fromkeys() 関数による辞書を使用する
  4. Python の str() および set() 関数を使用して音節を数える
Python で音節を数える

単語、フレーズ、文字、およびいくつかの特定の文字を数えることは、プログラミングで行う一般的なタスクです。これらすべてのタスクで、単語または文の音節を数えることも、ユーザーが行う非常に一般的なことです。

このチュートリアルでは、Python で音節を数えるためのさまざまな方法を紹介します。

Python で if ステートメントを使用して音節をカウントする

このメソッドでは、Python の組み込み関数である input() 関数を使用して文字列を入力します。

例:

word = input("Enter the word:")
syllable_count = 0
for w in word:
    if (
        w == "a"
        or w == "e"
        or w == "i"
        or w == "o"
        or w == "u"
        or w == "A"
        or w == "E"
        or w == "I"
        or w == "O"
        or w == "U"
    ):
        syllable_count = syllable_count + 1
print("The number of syllables in the word is: ")
print(syllable_count)

ここで、ユーザーは任意の単語を入力して input() 関数を使用できます。音節数は最初は 0 に設定されており、単語から返されるすべての音節は、for ループを使用して言及されています。すべての音節は大文字だけでなく小文字でも示されていることに注意してください。

出力:

Enter the word: Beautiful
The number of syllables in the word is: 5

Python で辞書とリスト内包表記を使用して音節を数える

リスト内包表記では、既存のリストの要素に基づいて新しいリストが作成されます。リスト内包表記を使用した後、出力は辞書の形式で提供されます。

Python の辞書は、特定の順序で保存されていないアイテムのコレクションです。辞書の各項目には独自の値があります。アイテム名がわかっていれば、アイテムの値を知ることができます。

例:

sentence = "Hello, Let us see how many syllables are there in this sentence"
sentence = sentence.casefold()


vowel_count = {s: sum([1 for letter in sentence if letter == x]) for s in "aeiou"}

print(vowel_count)

上記のコードでは、関数 casefold() が使用されていることに注意してください。casefold() 関数は、文字列または文字列のセットを小文字に変換するのに役立ちます。したがって、大文字の特定の文にいくつかの音節がある場合、この関数はこれらの音節を小文字に変換します。これで、大文字と小文字で返される音節について言及する必要はありません。

また、上記のコードで使用されている sum() メソッドは、リスト内の各項目の値の合計を計算します。

出力:

{'a': 3, 'e': 11, 'i': 2, 'o': 2, 'u': 1}

返される出力は、指定された値を持つ音節としてさまざまな項目を持つ辞書であることがわかります。

音節を数えるために Python の fromkeys() 関数による辞書を使用する

fromkeys() 関数を使用すると、さまざまなアイテムとその指定された値を使用して辞書を作成できます。

このメソッドでも、casefold() 関数を使用して、指定された文字列のセットが小文字に変換され、ユーザー自身から入力を受け取ることができます。また、この方法でも、音節数を 0 で初期化します。

例:

syllables = "aeiou"

word = input("Enter a word or a sentence: ")
word = word.casefold()


syllable_count = {}.fromkeys(syllables, 0)

for w in word:
    if w in syllable_count:
        syllable_count[w] += 1

print(syllable_count)

出力:

Enter a word or a sentence: Hello, Let Us See How Many Syllables Are There In This Sentence
{'a': 3, 'e': 11, 'i': 2, 'o': 2, 'u': 1}

Python の str() および set() 関数を使用して音節を数える

set() 関数は、すべての項目が特定の順序になっていないセットオブジェクトを返すために使用されます。この関数は、繰り返されるセット内のアイテムも削除します。

str() 関数を使用すると、任意の値またはオブジェクトを文字列に変換できます。

このメソッドでは、音節は集合関数の引数になります。これは、音節のセットが作成されることを意味します。

例:

def syllable_count(str):
    count = 0

    syllables = set("AEIOUaeiou")

    for letter in str:
        if letter in syllables:
            count = count + 1

    print("Total no. of syllables :", count)


str = "beautiful"

syllable_count(str)

出力:

Total no. of syllables : 5
著者: Lakshay Kapoor
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn