Textanalyse mit Textblob¶
TextBlob benutzt NLTK, deshalb muss im ersten Durchlauf nltk und alle dazugehörigen Sprachpakete installiert werden.
# !pip install textblob
# import nltk
# nltk.download()
# showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
# eventuell noch ausführen:
# !python -m textblob.download_corpora
import nltk
from textblob import TextBlob
text = open('corona-sonstige.txt').read()
blob = TextBlob(text)
# die ersten 10 aus der Liste...
for i in blob.tags[:10]:
print(i)
('Algemeine', 'NNP')
('keine', 'NN')
('Maskenpflicht', 'NNP')
('ab', 'NN')
('einer', 'NN')
('Incidenszahl', 'NNP')
('aber', 'VBP')
('trotdem', 'JJ')
('Maskenpflicht', 'NNP')
('für', 'NN')
nichts_als_worte = blob.words
Erbsen (Worte) zählen¶
# verkürzte Variante mit den ersten 10 Worten
for word in nichts_als_worte[:10]:
print(f"{word:<30} {nichts_als_worte.count(word)}")
Algemeine 1
keine 4
Maskenpflicht 2
ab 1
einer 1
Incidenszahl 1
aber 2
trotdem 1
Maskenpflicht 2
für 4
for word in nichts_als_worte:
count = blob.noun_phrases.count(word)
if count > 1:
print(f"{word:<30} {count}")
Maskenpflicht 2
Maskenpflicht 2
Regeln 2
Konzept 2
Regelungen 2
Bundesländern 2
Informationen 4
Regelungen 2
Informationen 4
Konzept 2
Informationen 4
Informationen 4
Regelungen 2
Regeln 2
Bundesländern 2
Branchen 2
Branchen 2
n-grams¶
The TextBlob.ngrams() method returns a list of tuples of n successive words.
blob.ngrams(n=3)[:10]
[WordList(['Algemeine', 'keine', 'Maskenpflicht']),
WordList(['keine', 'Maskenpflicht', 'ab']),
WordList(['Maskenpflicht', 'ab', 'einer']),
WordList(['ab', 'einer', 'Incidenszahl']),
WordList(['einer', 'Incidenszahl', 'aber']),
WordList(['Incidenszahl', 'aber', 'trotdem']),
WordList(['aber', 'trotdem', 'Maskenpflicht']),
WordList(['trotdem', 'Maskenpflicht', 'für']),
WordList(['Maskenpflicht', 'für', 'die']),
WordList(['für', 'die', 'Anmeldung'])]