2010-12-05 1 views
3

Gibt es eine kultursensitive Möglichkeit, Sätze in einer Zeichenkette zu identifizieren?C# Kultursensitive Satzidentifikation

Oder gibt es eine etwas im .NET-Framework (oder anderswo), die kulturspezifischen Satz Terminator

Zum Beispiel liefert, wo Englisch verwendet sagen ‚‘, ‚‘, ‚?‘ (und andere), um das Ende von Sätzen zu markieren, verwendet Chinesisch und Thai ein Leerzeichen.

+0

Ja, gehen Sie voran und ärgern 65 Millionen Französisch. Natürlich funktioniert das nicht. –

+0

@Hans: Was genau funktioniert nicht? Französisch hat Satztrennzeichen genau wie andere Sprachen (identisch mit englischen, tatsächlich) – Cameron

+0

Welches zugrundeliegende Problem versuchen Sie zu lösen? Vielleicht könnten wir alternative Lösungen anbieten, wenn wir es wüssten. – Cameron

Antwort

4

Ich kann nicht sehen, wie mit Sachen in das Framework eingebaut. Eine Sache, die Sie tun können, ist, eine Reihe von Parsern zu machen und den richtigen zu wählen, der auf CultureInfo.CurrentCulture basiert. Das heißt, haben Sie einen Parser, der eine neue Schnittstelle mit dem Namen ISentenceParser implementiert und eine Reihe von Implementierungen durchführt, die jeweils den Satz analysieren, der einer bestimmten Sprache entspricht. Dann, wenn Sie analysieren müssen, erhalten Sie das für Ihre Sprache benötigt.

Eine bessere Frage ist, warum ist das notwendig? Ich kann mir sehr wenige Situationen vorstellen, in denen man Sätze analysieren möchte (obwohl ich vielleicht nicht kreativ genug bin :)).

+0

Jede Art von NLP-Programmierung ... http://en.wikipedia.org/wiki/Natural_language_processing#Major_tasks_in_NLP –

+0

+1 für Ihre Antwort BTW, das scheint der Weg zu gehen. –

+0

Danke für die Kommentare alle. Nach der NLP-Verbindung ist dies das spezifische Problem, das ich zu verstehen versuchte. http://en.wikipedia.org/wiki/Sentence_breaking. Es war das Ende eines langen Tages, und Satzbruch (wie ich mich jetzt darauf beziehe) klang wie eine gute Idee. –

-1

Ich denke, dass es so etwas wie Ende des Satzes in Punktnetz nicht gibt. Sie müssen also Ihre eigene Implementierung verwenden. Was versuchst du zu machen?