[PYTHON] CCC: Coding Crash Course (5) Ermitteln Sie die Häufigkeit von Wörtern und Buchstaben, die in den Reden von Steve Jobs vorkommen

Rede von Steve Jobs

Rufen Sie zunächst die Textinformationen der Rede von der Seite der Stanford University ab und erstellen Sie eine Textdatei ohne Absätze. https://news.stanford.edu/2005/06/14/jobs-061505/


f= open("stevejobs.txt","r")

contents =f.read()

Sie können eine "(fast) Liste von Wörtern" list_word erstellen, indem Sie folgende Schritte ausführen:


list_word = contents.split(" ")

Sie können dies verwenden, um zu zählen, wie oft ein bestimmtes Wort, z. B. das, vorkommt.


count = 0
for w in list_word:
    if (w == "the"):
        count = count + 1

print(count)
# 91

Der Grund, warum ich oben nicht "Liste der Wörter" sagen konnte, ist, dass diese Methode bewirkt, dass "." Usw. an das Wort am Ende des Satzes angehängt wird. Schauen wir uns ein Beispiel an.


for w in list_word:
    if ('.' in w ):
        print(w)
        print('----')

# 
"""
world.
----
college.
----
graduation.
----
life.
----
Unten geht viel weiter.
"""

Sie können eine "Liste von Anweisungen (wie)" list_sentence erstellen, indem Sie folgende Schritte ausführen:


list_sentence = contents.split(". ")

Es kann nicht als "Liste von Sätzen" bezeichnet werden, da diese Methode nicht mit einem "." Endet und Dinge wie "!", "?", ":" Nicht erkennt, wenn ein Satz bricht. Schauen wir uns ein Beispiel an.


for l in list_sentence:
    if ("!" in l):
        print(l)
        print('----')

#Da nichts angezeigt wird, "!Es scheint keinen Satz zu geben, der "" enthält.

for l in list_sentence:
     if ("?" in l):
         print(l)
         print('----')

#Das Ausführungsergebnis ist wie folgt.
"""
So why did I drop out? It started before I was born
----
So my parents, who were on a waiting list, got a call in the middle of the night asking: “We have an unexpected baby boy; do you want him?” They said: “Of course.” My biological mother later found out that my mother had never graduated from college and that my father had never graduated from high school
----
How can you get fired from a company you started? Well, as Apple grew we hired someone who I thought was very talented to run the company with me, and for the first year or so things went well
----
When I was 17, I read a quote that went something like: “If you live each day as if it was your last, someday you’ll most certainly be right.” It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself: “If today were the last day of my life, would I want to do what I am about to do today?” And whenever the answer has been “No” for too many days in a row, I know I need to change something
----
"""

Zeichenfrequenz

Schauen wir uns zum Schluss die Häufigkeit der Buchstaben an.

Machen Sie zuerst alle Buchstaben niedriger.


contents_lower = contents.lower()

def count_char(char_target):
    count = 0
    for i in range(len(contents_lower)):
        s = contents_lower[i]
        if (s==char_target):
            count = count+1
    
    return count

abc = "a b c d e f g h i j k l m n o p q r s t u v w x y z"

list_abc = abc.split()
#list_abc = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

import numpy
list_count_letter = numpy.zeros(26) 

for i in range(26):
    letter = list_abc[i]
    N = count_char(letter)
    list_count_letter[i] = N
    print(letter, N)

# 
"""
a 772
b 132
c 219
d 417
e 1077
f 206
g 207
h 440
i 642
j 9
k 65
l 402
m 216
n 595
o 772
p 183
q 4
r 499
s 510
t 926
u 283
v 115
w 245
x 16
y 257
z 4
"""

Wenn Sie versuchen zu sortieren, sehen Sie wie folgt vor:

Es sieht so aus und überraschenderweise liegt "u" auf dem 12. Platz.


index_sort = numpy.argsort(list_count_letter)

for i in range(26):
    k = index_sort[i]
    letter = list_abc[k]
    N = list_count_letter[k]
    print(letter, N)

"""
z 4.0
q 4.0
j 9.0
x 16.0
k 65.0
v 115.0
b 132.0
p 183.0
f 206.0
g 207.0
m 216.0
c 219.0
w 245.0
y 257.0
u 283.0
l 402.0
d 417.0
h 440.0
r 499.0
s 510.0
n 595.0
i 642.0
o 772.0
a 772.0
t 926.0
e 1077.0
"""

Recommended Posts

CCC: Coding Crash Course (5) Ermitteln Sie die Häufigkeit von Wörtern und Buchstaben, die in den Reden von Steve Jobs vorkommen
CCC: Coding Crash Course (4) Machen Sie die Zahlen im Umfangsverhältnis 3.141562 .... zu einem Histogramm
CCC: Codierungs-Crashkurs (1)
CCC: Codierungs-Crashkurs (3)
CCC: Codierungs-Crashkurs (2)
Maya | Ermitteln Sie die Anzahl der Polygone im ausgewählten Objekt
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
Informieren Sie sich über das Alter und die Anzahl der Gewinne von Präfekturgouverneuren im ganzen Land