2016-05-01 4 views
0

Ich habe ein Unigramm-Sprachmodell für eine Satzvervollständigungsimplementierung erstellt. Ich habe alle Wörter mit ihrer Vorkommenszahl.Wie hoch ist die Wahrscheinlichkeit in einem Unigramm-Sprachmodell zu berechnen?

Ich bin verwirrt, wie man sie von hier vergleicht. Ich würde denken, dass ich die Wahrscheinlichkeit jedes Falles berechnen muss und den größten nehmen muss.

Also, wenn ich 3 Wörter habe, die verwendet werden können, vergleiche ich die Anzahl der Vorkommen jedes Wortes und nehme die höchste? Ist das die richtige Umsetzung?

Oder teile ich die Anzahl der Vorkommen jedes Wortes mit der Anzahl aller (verschiedenen?) Wörter des Trainingssatzes?

Vielen Dank.

Antwort

0

Wenn Sie keine Glättung (Turing, Kneser-Ney usw.) verwenden möchten, nehmen Sie die rohen Zahlen jedes Wortes (Formular) und teilen Sie sie durch die Gesamtzahl der Wörter Ihres Korpus (Text). Dies gibt Ihnen die Wahrscheinlichkeit jedes Wortes. Nun hebe man nicht immer derjenige mit der höchsten Wahrscheinlichkeit, da die generierte Text aussehen würde:

'the the the the the the the ...' 

Stattdessen müssen Sie Wörter nach ihrer Wahrscheinlichkeit wählen (sehen here für nähere Informationen).

Btw, Sie müssen Postleitzahl, wenn Sie Vorschläge, um es zu verbessern.

+0

Danke. Hier ist, was ich getan habe, um die Wahrscheinlichkeit jedes Wortes zu berechnen. float (nbocurrences_mot)/float (word_count)) Danach habe ich das Wort mit der größten Wahrscheinlichkeit in meinem Satz verwenden. Da es ein Unigramm-Modell ist, sind mir andere Wörter in diesem Satz egal, ich muss nur den richtigen zwischen den Wörtern wählen, die ich habe. – user3450862

+0

Ich habe eine Frage über das Bigramm (und 3-Gramm) -Modell, berechne ich den gleichen float (nbocurrences_bigram)/float (nbtotal_bigrams)? Oder ich habe irgendwo gelesen, dass es P (ab) = P (a) * P (b) = nb (a)/nb (word_count) * nb (b)/nb (word_count? Oder auch P (wi | w (i-) 1)) = c (wi-1, wi)/c (wi-1), also in meinem Fall P (a | b) = nbocurrences_bigram_ba/nbocurrences (b) – user3450862

+1

Nun, Sie können nur die 'richtige' (schlecht , Ich kann hinzufügen, mit einem Unigramm-Modell, wie Sie keine Kontextinformationen verwenden.) Aber wieder, Sie werden immer das gleiche Wort ("das" für ein großes Englisch Corpus) wählen, wenn Sie die mit dem höchsten Prob wählen. – schwobaseggl

Verwandte Themen