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'])]