Konkordanzen mit Python

Ihre Ziele bestehen darin, den Benutzer zur Analyse einer Textdatei aufzufordern. Sie werden auch zur Verfügung gestellt mit einer Datei mit Stoppwörtern - Wörter, die bei der Analyse der Datei ignoriert werden. Nach Erstellen Sie die Konkordanz und drucken Sie die Konkordanzergebnisse wie im Beispiel angegeben Ausgabe unten. Für jedes Wort in der Konkordanz drucken Sie:

  • the word
  • the total number of occurrences
  • for each occurrence:
    • the line number in the file (the first line is line #1)
    • the local context. The local context is the original line with the specified word in all upper case.

Das habe ich bisher:

import string
file_str = raw_input("What file to analyze:")
file_obj = open(file_str)
for line in file_obj.readlines():
    line = line.strip()
    split_line = line.split()
    for word in split_line:
        word = word.lower()
        word = word.strip(string.punctuation)

Ich bin mir nicht sicher, wohin ich von dort gehen soll!

0
Ich würde zunächst analysieren, welche Datenstrukturen Sie benötigen. Wie werden Sie die Wörter speichern? Wie speichern Sie die Informationen, die Sie zu jedem Wort benötigen? Dann finde heraus, wie du diese Informationen sammeln wirst.
hinzugefügt der Autor kindall, Quelle
In den letzten Tagen gab es ähnliche Fragen zu SO. Vielleicht möchten Sie das Archiv ein wenig durchsuchen.
hinzugefügt der Autor Sven Marnach, Quelle
In welchem ​​Teil versuchst du zu bleiben?
hinzugefügt der Autor millimoose, Quelle
Sie haben ein Syntaxproblem: Ziehen Sie den gesamten Code unterhalb der vierten Zeile ein. Wie definierst du Konkordanzen?
hinzugefügt der Autor Simon, Quelle
@Selbst wenn es andere Fragen zu den gleichen Hausaufgaben gibt, können sie Elemente der Antwort auf das OP verderben. Wenn überhaupt, sollte Emily versuchen, das Problem präziser zu formulieren. Betrachte dies als SO's besondere Bonusübung für sie :-)
hinzugefügt der Autor Simon, Quelle
wir haben txt-Dateien mit Storys wie itsy bitsy spider und wir mussten das Hauptwort darin zählen und es dann groß schreiben Beispielausgabe: Analysiere welche Datei: itsy_bitsy_spider.txt Übereinstimmung für Datei ity_bitsy_spider.txt itsy: Gesamtanzahl: 2 Line: 1: Die ITSY Bitsy Spinne kroch die Wasserrinne hoch Line: 4: und die ITSY Bitsy Spinne ging wieder hoch! gecrawlt: Gesamtanzahl: 1 Zeile: 1: Die Itsy Bitsy Spinne GEZOGEN bis zum Wasserauslauf: Gesamtzählung: 2 Zeile: 1: Die Itsy Bitsy Spinne krabbelte auf dem Wasser SPOUT Line: 4: und die Itsy Bitsy Spinne ging hoch SPÜLEN Sie wieder!
hinzugefügt der Autor stackoverflow_user1, Quelle

1 Antworten

Nun, eine Sache, die Sie brauchen, ist ein Zähler, den Sie bei jeder Iteration der äußeren Schleife inkrementieren, weil Sie gebeten werden, einige Informationen über Zeilennummern anzugeben.

Dann ist der nächste Schritt, ein Wörterbuch zu haben. Außerhalb der Schleife

words = {}

Jedes Mal, wenn Sie auf ein Wort stoßen, prüfen Sie, ob es bereits ein Schlüssel im Wörterbuch ist.

if word in words:

Wenn ja, aktualisieren Sie den Eintrag

    word_info = words[word]
    word_info =//something changed
   //possibly you need this depending on the type of word_info
    words[word] = word_info

Wenn nicht, erstellen Sie einen neuen Eintrag

else:
    word_info =//something
    words[word] = word_info

Ich überlasse es Ihnen, herauszufinden, welche Art von Wert word_info sein sollte.

0
hinzugefügt
wir haben txt-Dateien mit Storys wie itsy bitsy spider und wir mussten das Hauptwort darin zählen und es dann groß schreiben Beispielausgabe: Analysiere welche Datei: itsy_bitsy_spider.txt Übereinstimmung für Datei ity_bitsy_spider.txt itsy: Gesamtanzahl: 2 Line: 1: Die ITSY Bitsy Spinne kroch die Wasserrinne hoch Line: 4: und die ITSY Bitsy Spinne ging wieder hoch! gecrawlt: Gesamtanzahl: 1 Zeile: 1: Die Itsy Bitsy Spinne GEZOGEN bis zum Wasserauslauf: Gesamtzählung: 2 Zeile: 1: Die Itsy Bitsy Spinne krabbelte auf dem Wasser SPOUT Line: 4: und die Itsy Bitsy Spinne ging hoch SPÜLEN Sie wieder!
hinzugefügt der Autor stackoverflow_user1, Quelle