<jupyter_start><jupyter_text>Named Entities Recognition with NLTK- Named entities sind Orte, Firmen, Organisationen, Länder, etc.. alles Eigennamen. - Oft sind diese Eigennamen relativ wichtig im Text.<jupyter_code>import nltk
nltk.pos_tag(nltk.word_tokenize("<NAME> is from the United States of America and works at Microsoft Research Labs"))
import nltk
nltk.download('averaged_perceptron_tagger')
nltk.download('maxent_ne_chunker')
nltk.download('words')
pos_tags = nltk.pos_tag(nltk.word_tokenize("<NAME> is from the United States of America and works at Microsoft Research Labs"))
print(nltk.ne_chunk(pos_tags))
print(nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize("<NAME> kommt aus Deutschland und arbeitet bei der Forschungsabteilung von Microsoft"))))<jupyter_output>(S
  (PERSON Johan/NNP)
  (PERSON Meier/NNP)
  kommt/NNP
  aus/NN
  (GPE Deutschland/NNP)
  und/NN
  arbeitet/NN
  bei/NN
  der/NN
  (ORGANIZATION Forschungsabteilung/NNP)
  von/NNP
  Microsoft/NNP)<jupyter_text>Named Entities with spacy<jupyter_code>import spacy
nlp = spacy.load("de_core_news_sm")

doc = nlp("""

Bei den Brexit-Verhandlungen ist offenbar ein entscheidendes Zwischenziel erreicht worden. Nachdem die britische Regierung am Dienstag verkündete, es gebe eine Einigung mit Brüssel, mehrten sich auch in der EU-Hauptstadt die Anzeichen, dass die Unterhändler von EU und Großbritannien auf technischer Ebene ein belastbares Papier erarbeitet haben.

Am Mittwoch will die Premierministerin <NAME> nun ihr Kabinett auf die Brüsseler Übereinkunft einschwören.

Der Fraktionschef der Europäischen Volkspartei, <NAME>, sagte in den ARD-"Tagesthemen", es gebe "positive Signale", dass es zu einer Einigung komme: "Ja, der weiße Rauch steigt auf." Eine offizielle Bestätigung für einen Deal gab es von den Unterhändlern aus Brüssel zunächst nicht. Allerdings wollen die Botschafter der 27 restlichen EU-Länder am Mittwoch über einen Zeitplan bis zu einem möglichen Sondergipfel am Ende des Monats beraten, ein Vorhaben, das sinnlos wäre, wenn es keinen Grund für vorsichtigen Optimismus gäbe.

Mittwoch Gespräche im Kabinett, bei Erfolg: Sondergipfel am 25. November

Zuletzt waren die Gespräche bis tief in die Nacht im sogenannten Tunnel geführt worden, unter maximaler Geheimhaltung und mit der gegenseitigen Zusicherung, dass nichts davon vorzeitig nach außen dringt. Dann, am frühen Dienstagabend, bestätigte ein Sprecher Mays, dass tatsächlich ein Vertragsentwurf vorliege.

Die Premierministerin habe ihr Kabinett für Mittwoch, 14 Uhr Ortszeit, zu einer außerordentlichen Sitzung einbestellt. Ihr Ziel ist, möglichst noch am Mittwoch verkünden zu können, dass ihre Regierung weitgehend geschlossen hinter der mit Brüssel getroffenen Vereinbarung steht. Danach würde umgehend ein EU-Sondergipfel, vermutlich für den 25. November, einberufen.

Wird May das Ergebnis der Unterhändler diesmal zu Hause durchsetzen?

In Brüssel ist man hingegen vorsichtig mit dem Wort Einigung. Es gebe einen Text, auf den sich die Unterhändler geeinigt hätten, politisch sei der aber noch nicht abgesegnet, sagen mit der Angelegenheit vertraute EU-Diplomaten. Nun liege der Ball, mal wieder, in London. Eine ähnliche Situation hatte es bereits vor rund vier Wochen gegeben, als die Unterhändler in Brüssel ebenfalls weit gekommen waren, 10 Downing Street aber in letzter Sekunde den Stecker zog, weil May das Ergebnis in London nicht durchsetzen konnte.

Trotzdem bereitet auch die EU nun die Grundlagen für einen Sondergipfel vor, auf dem May für das Publikum auf der Insel ausreichend Verhandlungsdramatik inszenieren könnte. Die Sitzung der Botschafter der 27 verbleibenden EU-Länder am Mittwochnachmittag wurde um den Tagesordnungspunkt "State of Play" erweitert, es geht also um den Stand der Brexit-Verhandlungen.
""")

locations = []
for ent in doc.ents:
    if ent.label_ == "LOC":
        print(ent.text, ent.label_)
        locations.append(ent.text)
set(locations)<jupyter_output><empty_output><jupyter_text>AufgabeHolt euch den text von http://www.spiegel.de/politik/ausland/brexit-das-endspiel-hat-begonnen-a-1238299.html mit dem readability tool und findet heraus welche named entities am häufigsten vorkommen.  Von welchen Ländern und Unternehmen wird vor allem gesprochen?<jupyter_code>".word-wrap:nth-child(10) p , p+ p , .word-wrap:nth-child(4) p , .word-wrap:nth-child(1) p"
".sm\:pb-32"
#import httplib2
import json
from readability.readability import Document
import urllib
import re
import requests
from nltk.tokenize import word_tokenize

html = requests.get("https://www.spiegel.de/politik/ausland/brexit-das-endspiel-hat-begonnen-a-1238299.html").text
readable_article = Document(html).summary()
readable_title = Document(html).short_title()
text = re.sub('<[^<]+?>', '', readable_article)
text = str(text)
text = text.replace("-"," ")

words = word_tokenize(text)
words=[word for word in words if word.isalpha()]
text_clean = (" ").join(words)
doc = nlp(text_clean)
for ent in doc.ents:
    print(ent.text, ent.label_)
#text
"Brexit-Verhandlungen".replace("-"," ")
#doc.ents<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.07473519027069439, 'fraction_numerical': 0.0064731267163593564, 'mean_word_length': 5.528809218950064, 'pattern_counts': {'":': 1, '<': 19, '<?xml version=': 0, '>': 18, 'https://': 1, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '196312', 'license': 'MIT', 'n_tokens_mistral': 1779, 'n_tokens_neox': 1796, 'n_words': 573, 'path': '16 Textanalyse Verfiefung Teil 2/2.2 Named Entities Recognition.ipynb', 'repo_name': 'Tamibobi/kurs_21_22', 'size': '5123'}