Unicode-SegmentierungsalgorithmusDie Unicode-Segmentierungsalgorithmen sind eine Gruppe von Algorithmen, die das Unicode-Konsortium zur Zerlegung eines Textes in Segmente, etwa Wörter, veröffentlicht. Die Algorithmen finden in einem Text die Stellen, an denen er in Segmente aufgeteilt werden kann, und können zum Beispiel in Textverarbeitungsprogrammen eingesetzt werden, um Cursorbewegungen zu kontrollieren, das wortweise Markieren zu steuern und Ähnliches. Die Algorithmen sind dabei bewusst allgemein gehalten, um in möglichst vielen Sprachen gut zu funktionieren. Dies kann dazu führen, dass die gefundenen Grenzen nicht immer den Erwartungen entsprechen und entsprechende Anpassungen der Algorithmen nötig sind. Eine Reihe von sprachspezifischen Anpassungen bietet das Common Locale Data Repository. GeschichteAutor des Standard-Anhangs 29, der verschiedene Segmentierungsalgorithmen beschreibt, ist Mark Davis. Der erste Entwurf wurde am 11. März 2001 veröffentlicht,[1] die erste als Standard anerkannte Version am 17. April 2003.[2] Zum Stand November 2012 liegen die Algorithmen in der Version 21 vor.[3] ZeichenDie Zeichen im Sinne von Codepunkten entsprechen nicht immer den Zeichen aus Benutzersicht, den Graphemen. Dies tritt vor allem bei kombinierenden Zeichen auf: So wird ein Buchstabe gefolgt von einem kombinierenden diakritischen Zeichen ebenso als ein Zeichen wahrgenommen, wie koreanische Silbenblöcke oder indische Schriftzeichen, die in Unicode ebenfalls mit kombinierenden Zeichen gebildet werden. Der Standard beschreibt zwei verschiedene Algorithmen, um einen Text in einzelne Grapheme zu zerlegen, von denen der eine aber vor allem der Abwärtskompatibilität dient. Beide Algorithmen greifen auf die Eigenschaft Für die Implementierung können verschiedene Wege gewählt werden, etwa das Nachschlagen in einer Lookup-Tabelle oder die Bestimmung mittels eines regulären Ausdrucks. Der ursprüngliche Algorithmus verwendete die beiden Eigenschaften WörterÄhnlich geht der Algorithmus zur Bestimmung von Wortgrenzen vor. Die Eigenschaft Der Algorithmus erfordert in vielen Fällen Anpassungen an die verwendete Sprache. Dies ist vor allem bei Sprachen der Fall, die keine Leerzeichen verwenden. Problematisch ist auch die Frage, ob und wann Bindestriche und Apostrophe als Worttrenner fungieren sollen. Zerlegt man den Text an den ermittelten Wortgrenzen, so ergeben sich nicht nur einzelne Wörter, auch Zahlen und einzelne Satzzeichen werden gefunden. Je nach Anwendung – etwa beim Zählen der Wörter in einem Text – müssen also noch alle vom Algorithmus gefundenen Wörter, die keinen Buchstaben enthalten, aussortiert werden. BeispielFür eine beispielhafte Anwendung des Algorithmus dient der Satz:
Der Algorithmus sieht zunächst ein Wortende am Anfang und am Ende des Textes vor. Zwischen zwei Buchstaben gibt es keine Wortgrenze, ebenso nicht zwischen Ziffern und Zeichen, die innerhalb von Zahlen vorkommen können, wie in diesem Fall das Komma. An allen anderen Stellen findet der Algorithmus eine Wortgrenze. Der Satz wird also folgendermaßen zerlegt:
SätzeAnalog funktioniert die Zerlegung eines Textes in Sätze. Auch hier gibt es mit ZeilenFür die Bestimmung der Stellen, an denen ein Text in Zeilen umbrochen werden kann, gibt es mit dem Unicode-Zeilenumbruch-Algorithmus einen separat definierten Algorithmus. Einzelnachweise
Weblinks
|
Portal di Ensiklopedia Dunia