2017-03-28 9 views
-1

Ich versuche, einen Text in Sätze zu teilen, wenn ein Terminal Satzzeichen ('.', '!', '?') Erscheint. wenn ich zum Beispiel haben Sie den folgenden Text:Teilen von Text in Sätze mit Python

Anerkennung der steigenden Gelegenheit Jerusalem Venture Partners öffneten ihre Cyber ​​Labs Inkubator auf, um ein Haus zu vielen der Stadt vielversprechende junge Unternehmen geben. Internationale Konzerne wie EMC haben auch etablierten großen Zentren im Park, der Weg für andere zu folgen! Bei einem Besuch im vergangenen Juni war der Park bereits auf zwei Gebäude mit dem Boden für den Bau von mehr in die nahe Zukunft Zukunft. das ist wirklich interessant!was denkst du?

Dies soll (siehe oben die kühnen Worte, wie diese Worte mit einem Satzzeichen enden) in 5 Sätze aufgeteilt werden.

Hier ist mein Code:

# split on: '.+' 
    splitted_article_content = [] 
    # article_content contains all the article's paragraphs 
    for element in article_content: 
     splitted_article_content = splitted_article_content +re.split(".(?='.'+)", element) 

    # split on: '?+' 
    splitted_article_content_2 = [] 
    for element in splitted_article_content: 
     splitted_article_content_2 = splitted_article_content_2 + re.split(".(?='?'+)", element) 

    # split on: '!+' 
    splitted_article_content_3 = [] 
    for element in splitted_article_content_2: 
      splitted_article_content_3 = splitted_article_content_3 + re.split(".(?='!'+)", element) 

Meine Frage ist, gibt es eine andere effiziente Möglichkeit, folgendes zu tun, ohne alle externen Bibliotheken?

Danke für die Hilfe Jungs.

+2

Aber ... Sie _aren't_ mit beliebigen externen Bibliotheken als 're' ist ein Teil von Pythons Standardbibliothek. – ForceBru

+0

Könntest du nicht einfach 're.split (r '[\.!?]', Artikel)' '? –

+0

@RocketHazmat article_content ist eine Liste von Absätzen .. Split funktioniert auf einer Liste? –

Antwort

1

Ich glaube, ich sehe das eher als ein Blick hinter als ein Blick in die Zukunft:

import re 

# article_content contains all the article's paragraphs 
# in this case, a single paragraph. 

article_content = ["""Recognizing the rising opportunity Jerusalem Venture Partners opened up their Cyber Labs incubator, giving a home to many of the city’s promising young companies. International corporates like EMC have also established major centers in the park, leading the way for others to follow! On a visit last June, the park had already grown to two buildings with the ground being broken for the construction of more in the near future. This is really interesting! What do you think?"""] 

split_article_content = [] 

for element in article_content: 
    split_article_content += re.split("(?<=[.!?])\s+", element) 

print(*split_article_content, sep='\n\n') 

OUTPUT

% python3 test.py 
Recognizing the rising opportunity Jerusalem Venture Partners opened up their Cyber Labs incubator, giving a home to many of the city’s promising young companies. 

International corporates like EMC have also established major centers in the park, leading the way for others to follow! 

On a visit last June, the park had already grown to two buildings with the ground being broken for the construction of more in the near future. 

This is really interesting! 

What do you think? 
% 
+0

Ich muss diese Eingabe in eine Datei schreiben, wie kann ich das tun? –

+0

@JayMar, bitte ein wenig genauer, möchten Sie die Absätze aus einer Datei eingeben oder möchten Sie die Sätze in eine Datei ausgeben? Wenn es sich um eine von Ihnen gewünschte Frage handelt, könnten Sie eine neue Frage mit Ihrem gesammelten Code in Erwägung ziehen. – cdlane

+0

das ist ok Ich habe es geschafft, die Sätze in eine Datei auszugeben. Danke für die Hilfe. –