Thread Bestimmte Elemente in einer Zeile zusammenfassen (8 answers)
Opened by FDX at 2013-04-17 01:30

FDX
 2013-04-17 01:30
#167109 #167109
User since
2013-04-16
9 Artikel
BenutzerIn
[default_avatar]
Hallo liebes Perl Community,

Bin ein totaler NewBee was Perl und Programmieren angeht. Und möchte mich weiterentwickeln. Nur werde ich nicht schlauer :-(
Ich muss 2 Dateien vergleichen und Precision-Recall berechnen. Der Vergleich und Berechnungen funktionieren mit selbst erstellten Testdateien. Das eigentliche Problem ist das einlesen der beiden Dateien.

1.Ausgangsdatei besteht aus mehreren nummerierten Zeilen. 1 bis x sollte immer ein Satz bilden. zB

Code: (dl )
1
2
3
4
5
6
7
8
9
10
1 halte ......
2 an ......
3 ! .....

1 ich ....
2 - .....
3 bin ....
4 verzweifelt ....
5 . ...
.....


Ausgabe sollte immer das 2 Element nehmen und einen Satz bilden. Wenn ein - Zeichen kommt sollte es in die nächste Zeile springen.

Code: (dl )
1
2
3
Satz 1: Halte an !
Satz 2: Ich bin verzweifelt.
........

Die 1. Datei enthält xy Sätze ! # das mit dem zusammenzählen klappt :-)

Bei der 2Ausgangsdatei muss ich immer das 1 Element nehmen der nach einem <xx> kommt und einen Punkt setzten.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<xxxxx>
<xx>
suche .....
dir ......
Hilfe .......
<xxx>
<x>
" .....
wie .....
? .....
" ......
fragte....
sie ....
<xx>

Ausgabe:

Code: (dl )
1
2
Satz 1: Suche dir Hilfe .
Satz 2: " Wie ? " fragte sie.


Die 2 Datei enthät xy Sätze.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        open (INPUT, "<", $file1)
        or die "Die Datei kann nicht geoeffnet werden ! $!\n";
        print "\nDie Datei $file1 enthaelt folgende Saetze:\n\n";
        
                                wie kann ich eine for schleife 
                                for ($i=0;$i<@array;$i++){
                                print "$array[$i]\n";
                                }
                               mit einer while ($file1=<INPUT>) { .... verbinden dass ich das erwünschte               Ergebnis bekomme ? Sollte ich auch Array of Array benutzen oder gehts auch anders?

                
                                   @eg1=split (" ", $file1,10);
                                    push @AoA1, [@eg.......
                
                                   }
                                   close (INPUT);

$anzahl1 = $#AoA1+1;
print "\nDie Datei enthaelt ", $anzahl1," Saetze !\n\n";

ich freue mich auf eure Tipps.....
mfg

modedit Editiert von pq: code-tags hinzugefügt
Last edited: 2013-04-21 19:26:11 +0200 (CEST)

View full thread Bestimmte Elemente in einer Zeile zusammenfassen