Контекст: я использую NLTK для создания вероятностей биграмм. У меня есть корпус, из которого я сгенерировал биграммы. -> 'wordPairsBigram' относится к биграмме из корпуса. У меня есть предложение "Председатель компании сказал, что увеличит прибыль в следующем году". -> 'wordPairSentence' относится к биграммам в приведенном выше предложении.
Проблема: мне нужно сгенерировать вероятности биграмм. Для этого мне нужно найти условное частотное распределение образца предложения, которое я передам функции ConditionalProbDist. У меня есть следующий код, который вычисляет условную частоту биграмм предложения, доступных в корпусе.
fdListSentence1 = ConditionalFreqDist(wordBigram for wordBigram in wordPairsBigram if wordBigram in wordPairSentence1 )
print fdListSentence1.tabulate()
output:
company he said will year
The 8 0 0 0 0
chairman 0 0 7 0 0
he 0 0 0 2 0
next 0 0 0 0 5
said 0 21 0 0 0
Проблема Код отлично работает для всех биграмм, доступных в корпусе, и для примера предложения. Есть несколько биграмм, которые есть в примере предложения, но отсутствуют в корпусе. Они не учитываются при расчете частотного распределения.
Что мне нужно? Мне нужно частотное распределение биграмм в предложении. Если биграмма в предложении отсутствует в биграмме корпуса, мне нужно значение 0 при табулировании.
Любая помощь приветствуется. Я не знаю, как включить то, что я хочу в код.