Verschiedene linguistische und Unicode-Überlegungen
In diesem Thema werden Überlegungen zur Abwägung von agglutinativen Sprachen und Unicode-Ersatzpaaren sowie für die Verwendung von Ersatzpaaren beschrieben, um den Unicode-Zeichensatz auf verschiedene Zeichensätze zu erweitern. In diesem Thema wird auch beschrieben, wie Worttrennungen Ausdrücke im Text identifizieren und nicht brechende Leerzeichen behandeln, und wie Worttrennungen und -stemmer Zahlen und Datumsangaben, zusammengesetzte Wörter, zusammengesetzte Ausdrücke, spezielle Wörter und Zeichen, Akronyme und Abkürzungen sowie Großschreibung behandeln.
Dieses Thema ist wie folgt organisiert:
- Begriffsidentifikation
- Agglutinative Sprachen
- Zahlen, Zeiten und Datumsangaben
- Zusammengesetzte Wörter
- Zusammengesetzte Ausdrücke
- Sonderzeichen und Wörter
- Akronyme und Abkürzungen
- Großbuchstaben
- Nicht unterbrechende Leerzeichen
- Ersatzpaare
Begriffsidentifikation
Ausdrücke sind ein Wort oder eine Gruppe von Wörtern, die von einem oder mehreren anderen geändert werden. Ausdrücke sind schwer konsistent zu identifizieren, da derselbe Modifizierer in mehreren Ausdrücken mit demselben Substantiv verwendet werden kann. Beispiel: "neues Haus", "House of Parliament", "New House of Parliament".
Windows Search verwendet Ausdrücke am häufigsten zur Abfragezeit. Ausdrücke im Abfragetext erhalten eine höhere Gewichtung als einzelne Wörter. Im vorherigen Beispiel wird ein Dokument, das "House of Parliament" enthält, höher eingestuft als ein Dokument, das an verschiedenen Stellen im Dokument "House" und "Parliament" enthält. Es wird empfohlen, dass Worttrennungen einen Ausdruck zur Abfragezeit generieren, wenn der Ausdruck wahrscheinlich mindestens einem Dokument entspricht.
Agglutinative Sprachen
Agglutinative Sprachen bilden Wörter durch die Kombination kleinerer Morpheme, um zusammengesetzte Ideen auszudrücken. Jedes dieser Morpheme hat im Allgemeinen eine Bedeutung oder Funktion und behält seine ursprüngliche Form und Bedeutung während des Kombinationsprozesses bei. Für Sprachen mit agglutinativer Morphologie wie Türkisch, Finnisch, Ungarisch oder Koreanisch ist es möglich, Tausende von Formen für ein bestimmtes Stammwort zu erzeugen.
Die folgende Tabelle zeigt eine Liste der eingefelten Formen für das finnische Wort "talo" ("Haus").
Word | Sprachübersetzung |
---|---|
Talo | Haus |
Taloni | Mein Haus |
Talossa | Im Haus |
Talossani | In meinem Haus |
Taloja | Häuser |
Taloissa | In den Häusern |
Inflected Languages, wie Englisch, Französisch und Latein, haben eine sehr kleine Anzahl möglicher Wortformen für ein Stammwort. In inflected Languages beeinflussen sich Morpheme beim Binden gegenseitig. Die meisten Änderungen in der Beugung sind in der Stamm- oder Wortendung vorhanden. Im Gegensatz zu agglutinativen Sprachen haben inflectierte Sprachen in der Regel unterschiedliche Funktionen für ein einzelnes Morphem. Beispielsweise kann ein Morphem sowohl die Zahl als auch die Groß-/Kleinschreibung bestimmen.
Stemmere für agglutinative Sprachen müssen den Kompromiss zwischen Leistung und Genauigkeit abwägen, um nur eine Teilmenge der Anzahl möglicher Wortformen zu generieren.
Zahlen, Zeiten und Datumsangaben
Word Trennzeichen müssen ein gängiges Format für die Darstellung von Zahlen, Zeiten und Datumsangaben verwenden, um konsistente Abfragen zu ermöglichen.
Wenn Sie eine Worttrennung erstellen, wird empfohlen, dass der Worttrenner Zahlen zu einer kanonischen Darstellung normalisiert, indem das Muster "NNddDcc" verwendet wird. Dabei ist NN die Literalsequenz "NN", dd der ganzzahlige Teil der Zahl, D ist das Literal "D", und cc ist der Bruchteil der Zahl. Word Trennzeichen beschränken die Anzahl der Ziffern weder für die ganze Zahl noch für den Bruchteil der Zahl. Es wird empfohlen, dass Worttrennungen numerische Muster erkennen, die durch Punkte (.) und Kommas (,) getrennt sind. Windows Search stellt beispielsweise sowohl "1.000.2" als auch "1.000,2" als "NN1000D2" dar.
Wählen Sie ein Format für Worttrennung und Stemmer aus. Arabische Einzelbytezahlen werden normalisiert, sodass eine Abfrage, die eines dieser Formulare enthält, Dokumente mit den anderen Formularen abgleicht.
Wenn Sie eine Worttrennung erstellen, wird empfohlen, dass die Worttrennung alle Zeiten als 24-Stunden-Darstellung mit dem Muster "TThhmmss" darstellt, wobei TT das Literalpräfix "TT" ist, hh für stunden, mm für die Minuten und ss für die Sekunden. Windows Search entspricht nicht zusätzlichen Zeiteinheiten, z. B. Millisekunden. Das Analysieren von A.M. und P.M. Mustern ist optional.
Wenn Sie eine Worttrennung erstellen, wird empfohlen, dass die Worttrennung Datumsangaben im kanonischen Format "DDjjjjmmdd" generiert, wobei DD das Literal "DD" ist, JJJJ die Jahre, mm die Monate und dd die Tage. Wir empfehlen auch, dass Wortbrecher zweistellige Jahre in Formaten des zwanzigsten und einundzwanzigsten Jahrhunderts speichern. Beispielsweise stellen Worttrennungen "2.2.99" als "DD19990202" und "DD20990202" dar. Zur Abfragezeit leitet Windows Search das Datum mithilfe von Windows-APIs (Application Programming Interfaces) ab, um das Crossoverdatum für den Server für die Anzeige des richtigen Formats (19XX oder 20XX) zu bestimmen.
Zusammengesetzte Wörter
In einigen Sprachen, z. B. Deutsch, werden Nomen aus einfacheren Substantiven zusammengesetzt. Diese zusammengesetzten Nomen sind in ihrer Bedeutung für einen vernünftigen Abfragerückruf zu spezifisch. Beispielsweise stimmt eine Abfrage für "Versicherung" ohne Zerlegung nicht mit "Lebensversicherungsgesellschaft" überein. In solchen Fällen empfiehlt es sich, diese zusammengesetzten Wörter während der Indexerstellung und während der Abfragezeit in Basiskomponenten zu unterteilen. Der deutsche Wortbrecher unterbricht "Lebensversicherungsgesellschaft" in die Komponenten "Leben", "Versicherung" und "Gesellschaft". Es wendet dieselbe Zerlegung zur Abfragezeit an, zusammen mit optionaler Stammerstellung für jeden der resultierenden Begriffe.
Zusammengesetzte Ausdrücke
Einige Sprachen, z. B. Koreanisch, enthalten komplexe Ausdrücke, die auf verschiedene Arten unterbrochen werden können. Ein koreanischer Ausdruck besteht aus Inhaltswörtern wie Nomen, Pronomen, Verben und Adjektiven, gefolgt von funktionalen Wörtern. Funktionale Wörter befinden sich in Postpositionen und Enden. Postpositionen geben die funktionale Rolle des Nomens oder Pronomens in einem Satz an; Endungen geben die funktionale Rolle des Verbs oder Adjektivs an.
Ein Ausdruck kann über mehrere Analysen verfügen, und jede Analyse kann aus mehreren Inhaltswörtern bestehen. Der Wortbrecher muss sprachspezifische Heuristiken verwenden, um aus dem Kontext zu bestimmen, wie viel Gewicht verschiedenen Analysen zu geben ist. Die Worttrennung kann basierend auf der Anzahl der resultierenden Komponentenwörter bestimmen, welche Zerlegung verwendet werden soll. Einige Worttrennungen können kurze Sequenzen mit längeren Begriffen bevorzugen, während andere Worttrennungen lange Sequenzen kleinerer Wörter bevorzugen können.
Eine weitere Überlegung ist, dass im Koreanischen Nomen und Pronomen ohne ihre entsprechenden Funktionswörter im Index gespeichert werden können. Koreanisch ist eine agglutinative Sprache und kombiniert zahlreiche Wortendungen mit Verben und Adjektiven zu unzähligen Inflected-Formen. Verben und Adjektive, die in Ausdrücken identifiziert werden, werden mit ihren Enden im Index gespeichert, aber die Worttrennung generiert keine neuen Formen.
Sonderzeichen und Wörter
Sonderzeichen sind Zeichen wie ","©," und "™". Diese Zeichen werden selten in Abfragen verwendet. Word Trennzeichen sollten Sonderzeichen während der Indexerstellung und zur Abfragezeit entfernen.
Es wird empfohlen, dass Worttrennungen spezielle Wörter wie "C++", "C#", ".NET", Noten und Noten erkennen. Word-Trennzeichen können eine Sprachheuristik verwenden, um ein Muster für spezielle Wörter zu identifizieren. Word-Trennzeichen können auch ein Benutzerdefiniertes Wörterbuch verwenden, das erkannte sondere Wörter enthält.
Akronyme und Abkürzungen
Akronyme und Abkürzungen müssen berücksichtigt werden, wenn Sie eine Worttrennung implementieren. In vielen Sprachen sind einzelne Buchstaben von Akronymen durch Punkte getrennt. Gelegentlich werden Wörter, die nicht als Akronyme oder Abkürzungen erkannt werden, abgekürzt. Beispielsweise kann "USA von Amerika" als "USA" oder "USA" abgekürzt werden. Word in Windows Search enthaltenen Trennzeichen identifizieren wörter in der Regel als Rauschwörter und behandeln diese Wörter während der Abfragezeit als Platzhalter. Während der Abfragezeit wandelt ein Worttrenner, der gängige Akronyme nicht kennt oder Abkürzungen nicht erkennt, die Abkürzung "U.S.A." in "U", "S" und "A" um. Diese Zerlegung liefert nicht genügend Informationen, um Wörtern im Volltextindex zu entsprechen, da alle Abfragebegriffe Rauschwörter sind. Wenn Sie eine Worttrennung erstellen, wird empfohlen, dass die Worttrennung die Punkte entfernt, die die Buchstaben von Akronymen trennen. Im Beispiel wird "U.S.A." als "USA" und ein Abfragebegriff gespeichert, der "U.S.A." tatsächlich Abfragen für "USA" enthält. Wenn eine Worttrennung eine Abkürzung verarbeitet, wird der Punkt in dieser Abkürzung nicht als EOS-Umbruch behandelt. Aus diesem Grund kann eine Worttrennung einen EOS-Umbruch möglicherweise nicht ordnungsgemäß identifizieren, wenn sich die Abkürzung am Ende des Satzes befindet.
Großbuchstaben
Windows Search behält derzeit keine Großschreibung bei, wenn Wörter im Volltextindex gespeichert werden. Word Brecher und Stemmere sollten die Groß- und Kleinschreibung für Wörter nicht ändern.
Nicht unterbrechende Leerzeichen
Wenn Sie eine Worttrennung erstellen, sollten Sie sicherstellen, dass die Worttrennung nicht brechende Leerzeichen als Worttrennzeichen behandelt. Es wird auch empfohlen, dass die Worttrennung alternative Formen des Worts mit und ohne trennfreie Leerzeichen generiert. Einige Zeichen, z. B. Unterstriche, sind Sonderzeichen, die aufgrund der Quellen des Texts, in dem sie gefunden werden, als zeichenfreie Zeichen behandelt werden. Beispielsweise können Quellcode- oder Dateinamen Unterstriche als zeichenfreie Zeichen enthalten.
Ersatzzeichenpaare
Ersatzpaare sind Zeichendarstellungen im Quellcode, die ein einzelnes Zeichen darstellen, das aus einer Sequenz von zwei Unicode-Werten besteht. Bei einem codierten Paar ist der erste Wert ein hohes Ersatzmodell und der zweite ein niedriger Ersatzwert. Ein hohes Ersatzzeichen ist ein Zeichen im Bereich U+D800 bis U+DBFF. Ein niedriger Ersatz ist ein Zeichen im Bereich U+DC00 bis U+DFFF. Ersatzpaare erweitern den Zeichensatz über das Unicode-Zeichen hinaus. Es wird empfohlen, dass eine Worttrennung beim Behandeln von Ersatzpaaren die folgenden Regeln verwenden sollte:
- Ein hohes Ersatzgat muss einem niedrigen Ersatz vorgeschaltet werden.
- Ein niedriger Ersatz muss einer hohen Ersatzmutter folgen.
- Ein hoher oder niedriger Ersatz ohne entsprechenden Wert für die andere Hälfte hat keine Bedeutung.
Word Breaker müssen alle Paare berücksichtigen und die Paare als solche im Index generieren. Weitere Informationen finden Sie unter Ersatz- und Ergänzungszeichen.