markuskiller / textblob-de

German language support for TextBlob.
https://textblob-de.readthedocs.org
MIT License
104 stars 12 forks source link

Incorrect treatment of typographical quotation marks and dates #14

Open workflowsguy opened 7 years ago

workflowsguy commented 7 years ago

When a text contains typographical quotation marks like chevrons (»«) or guillemets («»), sentence boundaries are not correctly recognised. (Please ignore the part about dates in the title of this issue). E.g.

from textblob_de import TextBlobDE

text = '''
Die Kindersterblichkeit nahm um dreißig Prozent zu, die Abtreibungsquote stieg. Die Heiratsquote ging um achtzig Prozent zurück. Nachdenkliche Köpfe ließen sich vom falschen Pathos nicht blenden.
»Immer muss ich wieder daran denken, wie schön wir leben könnten, wenn wir jetzt beieinander und Friede im Lande wäre. … Unter dieser Stimmung und Sehnsucht bin ich oft bedrückt und da bin ich am liebsten allein. Die militärische Welt ist doch manchmal recht unschön. Wie froh bin ich da, dass ich Dich habe, die Du so viel anders bist als die meisten Menschen.« Das hatte Robert Scholl am 1. Februar 1916 an Lina Müller geschrieben, die bei ihren Eltern in Künzelsau Urlaub machte.
'''

blob = TextBlobDE(text)
print(len(blob.sentences))
for sentence in blob.sentences:
    print(sentence)

gives

7

Die Kindersterblichkeit nahm um dreißig Prozent zu, die Abtreibungsquote stieg.
Die Heiratsquote ging um achtzig Prozent zurück.
Nachdenkliche Köpfe ließen sich vom falschen Pathos nicht blenden.
»Immer muss ich wieder daran denken, wie schön wir leben könnten, wenn wir jetzt beieinander und Friede im Lande wäre.
… Unter dieser Stimmung und Sehnsucht bin ich oft bedrückt und da bin ich am liebsten allein.
Die militärische Welt ist doch manchmal recht unschön.
Wie froh bin ich da, dass ich Dich habe, die Du so viel anders bist als die meisten Menschen.« Das hatte Robert Scholl am 1. Februar 1916 an Lina Müller geschrieben, die bei ihren Eltern in Künzelsau Urlaub machte.

Sentence count is one less than it should be as two sentences are incorrectly recognised as one.

markuskiller commented 7 years ago

Thank you for your message. textblob-de uses NLTK Punkt Tokenizer for sentence boundaries. I've just noticed that you already raised the issue (nltk/nltk#1903) in the NLTK project.