[PYTHON] Fallstudie zur Verarbeitung natürlicher Sprache: Worthäufigkeit in 'Anne mit einem E'

Dieser Artikel ist ein Experiment zur Analyse des Wortlauts eines Romans mithilfe der Verarbeitung natürlicher Sprache. Erstellen Sie eine Pipeline, um die Häufigkeit von Wörtern einfach zu analysieren. I recently encountered this amazing Netflix series Anne with an E and was amazed by the story. It's hard to find high-quality movies that pass the Bechdel Test. The story is extremely empowering for girls. Inspired by Hugo Bowne-Anderson from Data Camp, I decided to apply my knowledge in web-scraping and basic Natural Language Processing knowledge to analyze the word frequency in the original book ANNE OF GREEN GABLES.

anne-with-an-e.jpg

In this project, I'll build a simple pipeline to visualize and analyze the word frequency in ANNE OF GREEN GABLES.

from bs4 import BeautifulSoup
import requests
import nltk

If this is your first time using nltk, don't forget to include the following line to install nltk data as we'll need to use the stopwords file later to remove all the stopwords in English.

nltk.download()

Simply run this line in your program and a GUI window will pop up. Follow the instructions to install all the data. The installation procedure would take a couple of minutes. After the installation, you'll be good to go.


r = requests.get(‘http://www.gutenberg.org/files/45/45-h/45-h.htm')
r.encoding = ‘utf-8’
html = r.text
print(html[0:100])

Now we can fetch the html version of the book and print the first 100 characters to see if it's right. Before extracting all the text from the html document, we'll need to create a BeautifulSoup object.

soup = BeautifulSoup(html)
text = soup.get_text()
print(html[10000:12000])

Then we'll use nltk and Regex to tokenize the text into words:

tokenizer = nltk.tokenize.RegexpTokenizer('\w+')
tokens = tokenizer.tokenize(text)
print(tokens[:8])

Now we can turn all the words into lower-case for later frequency distribution calculation since it is case-sensitive.

words = []

for word in tokens:
    words.append(word.lower())
print(words[:8])

One last step before we can visualize the distribution of frequency of words is to get rid of all the stop words in words list.

sw = nltk.corpus.stopwords.words(‘english’)
print(sw[:8])
words_ns = []
for word in words:
    if word not in sw:
        words_ns.append(word)
print(words_ns[:5])

Finally, let's visualize the top dist plot and see what are the top 25 frequent words in the book.

%matplotlib inline
freqdist = nltk.FreqDist(words_ns)
freqdist.plot(25)

F3FC7F36-AB91-4C63-B5FE-02F9A04A8F5D.jpeg

Now we can see the top two supporting characters in the fiction are two females: Marilla and Diana. It's not surprising the name of the Netflix series renamed it as Anne With an ‘E’ as it is a name repeated over 1200 times.

Recommended Posts

Fallstudie zur Verarbeitung natürlicher Sprache: Worthäufigkeit in 'Anne mit einem E'
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
3. Verarbeitung natürlicher Sprache durch Python 1-1. Word N-Gramm
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Verarbeitung natürlicher Sprache 3 Wortkontinuität
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
3. Verarbeitung natürlicher Sprache durch Python 2-1. Netzwerk für das gleichzeitige Auftreten
Ich habe versucht, natürliche Sprache mit Transformatoren zu verarbeiten.
3. Verarbeitung natürlicher Sprache durch Python 2-2. Koexistenznetzwerk [mecab-ipadic-NEologd]
[Python] Ich habe mit der Verarbeitung natürlicher Sprache ~ Transformatoren ~ gespielt
Lassen Sie uns die Verarbeitung natürlicher Sprache mit der COTOHA-API genießen
Ich habe ein Einführungsbuch über die Verarbeitung natürlicher Sprache gelesen
Python: Verarbeitung natürlicher Sprache
100 Sprachverarbeitung Knock-36 (unter Verwendung von Pandas): Häufigkeit des Auftretens von Wörtern
RNN_LSTM2 Verarbeitung natürlicher Sprache
100 Sprachverarbeitung Knock-83 (mit Pandas): Messung der Wort- / Kontexthäufigkeit
100 Sprachverarbeitungsklopfen mit Python 2015
100 Sprachverarbeitung Knock-51: Wortausschnitt
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Sprachverarbeitung 100 Knock-87: Wortähnlichkeit
Erstellen Sie mit BERT + LightGBM + optuna ganz einfach ein Modell für die Verarbeitung natürlicher Sprache
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Fassen Sie mit tf.data.Dataset api zusammen, wie Text (Verarbeitung natürlicher Sprache) vorverarbeitet wird
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
100 Sprachverarbeitung Knock-82 (Kontextwort): Kontextextraktion
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
Sprachverarbeitung 100 knock-86: Wortvektoranzeige
[Sprachverarbeitung 100 Schläge 2020] Kapitel 7: Wortvektor
100 Sprachverarbeitung Knock 2020 Kapitel 7: Word Vector
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache
Das stimmt, lass es uns essen. [Verarbeitung natürlicher Sprache beginnend mit Kyoto Ben]
[Verarbeitung natürlicher Sprache] Extrahieren Sie Schlüsselwörter aus der Kakenhi-Datenbank mit MeCab-ipadic-neologd und termextract
3. Verarbeitung natürlicher Sprache mit Python 1-2. So erstellen Sie einen Korpus: Aozora Bunko