I have text in Greek and want to isolate phrases in capital letters in quotation marks.
For a reproducible example, the text is the following:
document = '''ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΕΜΠΟΡΙΟΥ & ΠΡΟΣΤΑΣΙΑΣ ΚΑΤΑΝΑΛΩΤΗ ΓΕΝΙΚΗ Δ/ΝΣΗ ΑΓΟΡΑΣ Δ/ΝΣΗ ΕΤΑΙΡΕΙΩΝ ΤΜΗΜΑ ΕΠΟΠΤΕΙΑΣ ΕΙΣΗΓΜΕΝΩΝ Α.Ε. & ΑΘΛΗΤΙΚΩΝ Α.Ε. Ταχ. Δ/νση: Πλ. Κάνιγγος Ταχ. Κώδικας: 101 81 Πληροφορίες: Μ. Κανά Τηλέφωνο: 2103893566 Fax: 2103838981 e-mail: kana@gge.gr Αθήνα, 25.07.2019 Αρ. Πρωτ.: 1577914 ΑΝΑΚΟΙΝΩΣΗ Καταχώρισης στο Γενικό Εμπορικό Μητρώο στοιχείων της Ανώνυμης Εταιρείας με την επωνυμία «ΓΡΗΓΟΡΗΣ ΣΑΡΑΝΤΗΣ ΑΝΩΝΥΜΗ ΒΙΟΜΗΧΑΝΙΚΗ ΚΑΙ ΕΜΠΟΡΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΛΛΥΝΤΙΚΩΝ, ΕΝΔΥΜΑΤΩΝ, ΟΙΚΙΑΚΩΝ ΚΑΙ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΕΙΔΩΝ» Ανακοινώνεται ότι την 25 .07.2019 καταχωρίσθηκε στο Γενικό Εμπορικό Μητρώο (Γ.Ε.ΜΗ) με Κωδικό Αριθμό Καταχώρησης 1802156. η με αριθμό 780001/25.07.2019 απόφασή μας (ΑΔΑ: ΨΝΚ1465ΧΙ82ΒΜ), με την οποία εγκρίθηκε η τροποποίηση εν συνόλω του καταστατικού, της ανώνυμης εταιρείας με την επωνυμία «ΓΡΗΓΟΡΗΣ ΣΑΡΑΝΤΗΣ ΑΝΩΝΥΜΗ ΒΙΟΜΗΧΑΝΙΚΗ ΚΑΙ ΕΜΠΟΡΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΛΛΥΝΤΙΚΩΝ, ΕΝΔΥΜΑΤΩΝ, ΟΙΚΙΑΚΩΝ ΚΑΙ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΕΙΔΩΝ», και αριθμό ΓΕΜΗ 255201000 (πρώην ΑΡ. ΜΑΕ 13083/06/Β/86/27), σύμφωνα με την από 18-6-2019 απόφαση της Τακτικής Γενικής Συνέλευσης των μετόχων της, στο πλαίσιο της εναρμόνισης με το ν. 4548/2018 «Αναμόρφωση του δικαίου των ανωνύμων εταιρειών». Το εν λόγω καταστατικό με ημερομηνία 18/6/2019 αποτελείται από 28 άρθρα, ως αυτά διαλαμβάνονται στα κεφάλαια A έως H αυτού. Την ίδια ημερομηνία καταχωρίσθηκε στο Γενικό Εμπορικό Μητρώο ολόκληρο το νέο κείμενο καταστατικού μαζί με τις τροποποιήσεις του. Ο ΠΡΟΙΣΤΑΜΕΝΟΣ ΤΗΣ ΔΙΕΥΘΥΝΣΗΣ ΙΩΑΝΝΗΣ ΑΡΕΤΑΙΟΣ'''
My code is the following:
nlp_el = spacy.load('el_core_news_md')
doc = nlp_el(document)
pattern = [{'POS':'PUNCT', 'TEXT':'«'}, {'POS':'NOUN', 'IS_UPPER':True, 'OP': '?'}, {'POS':'PUNCT', 'TEXT':'»'}]
# Add the pattern to the matcher and apply the matcher to the doc
matcher.add("UPPER CASE", None, pattern)
matches = matcher(doc)
print("Total matches found:", len(matches))
# Iterate over the matches and print the span text
for match_id, start, end in matches:
print("Match found:", doc[start:end].text)
The output is the following, which is not what I aimed for:
I expected to isolate the following phrase:
«ΓΡΗΓΟΡΗΣ ΣΑΡΑΝΤΗΣ ΑΝΩΝΥΜΗ ΒΙΟΜΗΧΑΝΙΚΗ ΚΑΙ ΕΜΠΟΡΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΛΛΥΝΤΙΚΩΝ, ΕΝΔΥΜΑΤΩΝ, ΟΙΚΙΑΚΩΝ ΚΑΙ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΕΙΔΩΝ»
How do you explain the situation and what you would propose to remedy it?