Satz in Wörter aufteilen, aber Probleme mit den Interpunktionen in C # haben

8

Ich habe ein paar ähnliche Fragen gesehen, aber ich versuche das zu erreichen.

Gegeben eine Schnur, str="Der Mond ist unser natürlicher Satellit, d. h. er dreht sich um die Erde!" Ich möchte die Wörter extrahieren und sie in einem Array speichern. Die erwarteten Array-Elemente wären das.

%Vor%

Ich habe versucht, String.split (',' \ t ',' \ r ') zu verwenden, aber das funktioniert nicht richtig. Ich habe auch versucht, die., Und andere Interpunktionszeichen zu entfernen, aber ich würde eine Zeichenfolge wie "d. H." auch analysiert werden. Was ist der beste Weg, dies zu erreichen? Ich habe auch versucht, Regex.split ohne Erfolg zu verwenden.

%Vor%

Würde sicherlich einige Anstöße in die richtige Richtung schätzen.

    
Richard N 05.09.2011, 18:46
quelle

4 Antworten

26

Eine Regex-Lösung.

%Vor%

Und wenn Sie wirklich das letzte . auf i.e. korrigieren möchten, könnten Sie das verwenden.

%Vor%

Hier ist der Code, den ich verwende.

%Vor%

Ergebnisse:

%Vor%
    
TheCodeKing 05.09.2011, 18:55
quelle
8

Ich vermute, dass die Lösung, nach der Sie suchen, viel komplexer ist als Sie denken. Sie suchen nach einer Form der tatsächlichen Sprachanalyse oder zumindest nach einem Wörterbuch, damit Sie feststellen können, ob ein Punkt Teil eines Wortes ist oder einen Satz beendet. Hast du überlegt, dass es beides kann?

Fügen Sie ein Wörterbuch mit zulässigen "Wörtern mit Interpunktionszeichen" hinzu. Dies kann der einfachste Weg sein, um Ihr Problem zu lösen.

    
Greg D 05.09.2011 18:57
quelle
2

Das funktioniert für mich.

%Vor%

Ergebnisse:

%Vor%

Sie könnten die Ergebnisse nachbearbeiten, Kommas und Semikolons entfernen usw.

    
Cheeso 05.09.2011 18:53
quelle
1
%Vor%     
Kirill Polishchuk 05.09.2011 19:06
quelle

Tags und Links