Dies ist eine relativ alte Frage, aber ich werde meine 5 Cent für die Leute hinzufügen, die (wie ich) auf der Suche nach etwas Ähnlichem darauf gestoßen sind.
Ein alternativer Ansatz für den Umgang mit emissionsfreien Wahrscheinlichkeiten besteht darin, "das Vokabular zu schließen". Eine Idee ist es, "seltene" Wörter im Trainingssatz zu definieren - solche, die weniger als vordefiniert vorkommen - und sie durch "Wortklassen" zu ersetzen, bevor das Modell trainiert wird. Wenn Sie ein Modell auf eine neue Wortfolge anwenden, werden alle Wörter, die nicht in einem Trainingssatz enthalten waren, ebenfalls in "Wortklassen" konvertiert (was sie effektiv als "selten" betrachtet). Es garantiert, dass es für ein Modell keine unsichtbaren Wörter gibt.
Die Regeln zum Erzeugen von "Wortklassen" aus Wörtern müssen manuell ausgewählt werden (was ein Nachteil ist). Zum Beispiel in einem (wahrscheinlich) ersten Artikel, in dem dieser Ansatz verwendet wurde (Bikel, DM, Schwartz, R. & Weischedel, RM Machine Learning (1999) 34: 211; https://link.springer.com/article/). 10.1023 / A: 1007558221122 ; http://curtis.ml.cmu.edu/w/courses/index.php/Bikel_et_al_MLJ_1999 ) Beispiele für Klassen sind:
Word Feature | Example Text | Intuition
-----------------------|------------------------|-----------------------------------------
twoDigitNum | 90 | Two-digit year
fourDigitNum | 1990 | Four digit year
containsDigitAndAlpha | A8956-67 | Product code
containsDigitAndDash | 09-96 | Date
containsDigitAndSlash | 11/9/89 | Date
containsDigitAndComma | 23,000.00 | Monetary amount
containsDigitAndPeriod | 1.00 Monetary | amount, percentage
otherNum | 456789 | Other number
allCaps | BBN | Organization
capPeriod | M. | Person name initial
firstWord | first word of sentence | No useful capitalization information
initCap | Sally | Capitalized word
lowerCase | can | Uncapitalized word
other | , | Punctuation marks, all other words
Ein Beispiel für einen vorverarbeiteten markierten Satz aus einem Trainingssatz (aus Vorlesungen von Michael Collins):
"Gewinne / NA stiegen / NA bei / NA Boeing / SC Co./CC, / NA leicht / NA topping / NA Prognosen / NA an / NA Wall / SL Street / CL, / NA als / NA ihr / NA CEO / NA Alan / SP Mulally / CP angekündigt / NA erstes / NA-Quartal / NA-Ergebnisse / NA ./NA "
wird (mit einigen hypothetischen Tags und "seltenen Wörtern") in (ersetzte Wörter, wie fett dargestellt ) umgewandelt.
" Firstword / NA gestiegen / NA bei / NA INITCAP / SC Co./CC, / NA leicht / NA klein geschrieben / NA Prognosen / NA auf / NA INITCAP / SL Straße / CL / NA als / NA ihr / NA CEO / NA Alan / SP initCap / CP angekündigt / NA erstes / NA-Quartal / NA-Ergebnisse / NA ./NA "
Es ist immer noch möglich, dass im Trainingssatz nicht alle Paare von "Tag -> Wort / Wortklasse" gesehen werden, was es unmöglich macht, dass ein bestimmtes Wort oder eine bestimmte Wortklasse mit diesen Tags markiert wird. Dies verhindert jedoch nicht, dass diese Wörter mit anderen Tags versehen werden - im Gegensatz zu einem Wort, das in einem Trainingssatz nicht enthalten war.