J'espère que je ne dérange personne avec cette question car elle est similaire à celles qui ont déjà été posées. Pourtant, mon problème est que je n'ai pas trouvé la réponse pour un fichier txt, mais uniquement pour html / xml fonctionnant avec BeautifulSoup. Une autre question donne une réponse pour Java, mais je n'ai travaillé qu'avec Python.

J'ai donc plusieurs documents texte et je veux obtenir pour chacun d'eux la première phrase de chaque paragraphe.

J'ai pensé ouvrir et lire le texte avec:

speech1_content = open("1789-04-30-George-Washington.txt", "r")

Serait la première étape, mais je n'ai trouvé aucune réponse qui me mène plus loin. L'idée est d'avoir un paragraphe dans un fichier txt:

Parmi les vicissitudes de la vie, aucun événement n'aurait pu m'emplir de plus grandes angoisses que celle dont la notification a été transmise par votre commande et reçue le 14e jour du mois en cours. D'une part, j'ai été convoqué par mon pays, dont je ne peux entendre la voix qu'avec vénération et amour, dans une retraite que j'avais choisie avec la plus grande prédilection, et, dans mes espoirs flatteurs, avec une décision immuable, comme le asile de mes années déclinantes, retraite qui me devenait chaque jour plus nécessaire et plus chère par l'addition de l'habitude à l'inclinaison, et des fréquentes interruptions de ma santé au gaspillage graduel qui lui était fait par le temps.

Mais seulement cela en sortie:

Parmi les vicissitudes de la vie, aucun événement n'aurait pu m'emplir de plus grandes angoisses que celle dont la notification a été transmise par votre commande et reçue le 14e jour du mois en cours.

Merci beaucoup pour votre aide.

0
Nele 16 mars 2019 à 19:35

2 réponses

Meilleure réponse

Cela vous donne une liste de chaînes qui stockent la première phrase de chaque ligne:

speech1_lines = speech1_content.readlines()
speech1_first_sentences = [line.split('.')[0] for line in speech1_lines]

Vous pouvez ensuite imprimer la liste

print(speech1_first_sentences)

Ou itérer dessus

for sentence in speech1_first_sentences:
    print(sentence)
0
Felix 16 mars 2019 à 16:53

Je suppose donc que vous devez lire un fichier jusqu'au premier saut de ligne ('\ n').

En Python, nous préférons ouvrir un fichier avec:

with open(filename) as f:
    lines = f.readlines()

Maintenant, une ligne va jusqu'au premier saut de ligne. Les premiers paragraphes sont simplement le premier élément des lignes ([0]) et le premier. peut être obtenu en appelant la fonction find sur une chaîne. Dans ton cas:

eos = lines[0].find('.')
first_sentence = lines[0][0:eos]

Si vous avez besoin d'un localisateur de phrases plus sophistiqué, vous devriez jeter un œil à NLTK.

0
Dániel Lévai 16 mars 2019 à 16:43