[PYTHON] Étude de cas sur le traitement du langage naturel: Fréquence des mots dans'Anne avec un E '

Cet article est une expérience pour analyser le libellé d'un roman à l'aide du traitement du langage naturel. Créez un pipeline pour analyser facilement la fréquence des mots. 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

Étude de cas sur le traitement du langage naturel: Fréquence des mots dans'Anne avec un E '
Étudiez le traitement du langage naturel avec Kikagaku
3. Traitement du langage naturel par Python 1-1. Word N-gram
Créer un environnement pour le traitement du langage naturel avec Python
Traitement du langage naturel 3 Continuité des mots
Traitement du langage naturel 2 similitude de mots
[Traitement du langage naturel] Prétraitement avec le japonais
3. Traitement du langage naturel par Python 2-1. Réseau de co-occurrence
J'ai essayé le traitement du langage naturel avec des transformateurs.
3. Traitement du langage naturel par Python 2-2. Réseau de co-occurrence [mecab-ipadic-NEologd]
[Python] J'ai joué avec le traitement du langage naturel ~ transformers ~
Profitons du traitement du langage naturel à l'aide de l'API COTOHA
J'ai lu un livre d'introduction sur le traitement du langage naturel
Python: traitement du langage naturel
100 traitement du langage knock-36 (en utilisant des pandas): fréquence d'occurrence des mots
RNN_LSTM2 Traitement du langage naturel
100 Language Processing Knock-83 (en utilisant des pandas): Mesure de la fréquence des mots / contextes
100 coups de traitement du langage avec Python 2015
100 traitement du langage Knock-51: découpage de mots
Traitement du langage naturel 1 Analyse morphologique
Traitement du langage 100 Knock-87: similitude des mots
Créez facilement un modèle de traitement du langage naturel avec BERT + LightGBM + optuna
Dockerfile avec les bibliothèques nécessaires pour le traitement du langage naturel avec python
Résumez comment prétraiter le texte (traitement du langage naturel) avec l'api tf.data.Dataset
100 traitements du langage naturel frappent le chapitre 4 Commentaire
100 traitements de langage avec Python
Traitement du langage naturel pour les personnes occupées
100 Language Processing Knock-82 (mot de contexte): Extraction de contexte
100 traitements de langage avec Python (chapitre 3)
Logivan du langage artificiel et traitement du langage naturel (traitement du langage artificiel)
Traitement du langage 100 knock-86: affichage vectoriel Word
[Traitement du langage 100 coups 2020] Chapitre 7: Vecteur Word
100 Traitement du langage Knock 2020 Chapitre 7: Vecteur de mots
Se préparer à démarrer le traitement du langage naturel
Résumé de l'installation de l'analyseur de traitement du langage naturel
Vous devenez ingénieur en 100 jours ――Jour 66 ――Programmation ――À propos du traitement du langage naturel
C'est vrai, mangeons-le. [Traitement du langage naturel à partir de Kyoto Ben]
[Traitement du langage naturel] Extraire les mots-clés de la base de données Kakenhi avec MeCab-ipadic-neologd et termextract
3. Traitement du langage naturel avec Python 1-2. Comment créer un corpus: Aozora Bunko