thvitt / corpuschars

0 stars 0 forks source link

Zeichen-Matrix #2

Open eickelpasch opened 10 months ago

eickelpasch commented 10 months ago

Erstellen einer Matrix mit den Spaltennamen = Namen der .txt-Dateien im Corpus und Zeilennamen = character, sowie den entsprechenden Häufigkeiten innerhalb der Matrix. Erstellen einer Summen-Spalte aus den jeweiligen Zeilen. Sortieren der Zeilen nach der Häufigkeit in der Summenspalte. Ausgabe der x (erste Annahme x=20) Zeichen mit den geringsten Häufigkeiten

eickelpasch commented 10 months ago

Ich bin prinzipiell fertig mit der reinen Ermittlung einer Matrix. (Die Spalten sind noch den Dateinamen des Korpus zuzuordnen und im Anschluss ergeben sich neue userstories: Finden der Zeichen im Text. Finden eines Ersatzes. Folgende Probleme tauchten auf und sind teilweise noch ungelöst bzw. wert zu besprechen: Der Test der Matrix erfordert eine Vergleichsmatrix. Ich habe mir mit einem kleinen Textbestand geholfen und nicht mit asserts gearbeitet sondern selbst hingeschaut und gezählt. Dies diente vor allem dazu die richtigen Pandas-Funktionen zu wählen bzw. die Parameter und die richtigen Bibliotheken und Module zu wählen. Wie bereitet man große Testdaten vor? Beim Lesen erhielt ich schon Fehler, weil Zeichen sich nicht behandeln ließen und der Read abgebrochen wurde. Das Problem ist noch nicht gelöst. Es tauchte bei drei Goethetexten auf, die ich zunächst aus dem Korpus nahm, kam dann aber weiter zum Tragen und ich habe den Korpus auf die ersten Romane reduziert (Autoren von A bis F). Wie also fange ich die Lesefehler ab ohne den Durchlauf zu beenden und ersetze/ergänze das Lesen und Einfügen in die Matrix anderweitig? Preprocessing der Dateien?

thvitt commented 9 months ago
  1. Testfall basteln
  2. Ermitteln, ob das ein Programmier- oder Datenfehler ist. Ggf. ist es sinnvoll, den fehler zu fangen à la
    try:
      text = file.read()
    except ValueError as e:
      print(e, file)
      if hasattr(e, 'object') and hasattr(e, 'end'):
         print('  ', e.object[e.end-50:e.end])

    falls tatsächlich in einzelnen Dateien das Problem vermutet wird.

  3. Wenn das Problem wirklich in einzelnen Dateien ist und eine Korrektur dort nicht plausibel, kann man sich Tools wie Unicode, Damnit (BeautifulSoup) oder ftfy anschauen.