Как рассчитать вероятность предложения с учетом вероятностей его слов? - PullRequest
0 голосов
/ 27 января 2020

Я работаю в Python, пытаясь написать al oop, который вычислит вероятность предложения, взяв произведение каждого слова в вероятность предложения. У меня есть словарь, который содержит тысячи слов в качестве ключей и их вероятности в качестве значений. Проблема, с которой я сталкиваюсь, заключается в том, что мои текущие попытки, кажется, рассчитывают вероятность уровня предложения 1, несмотря ни на что. Вот как выглядит мой код на данный момент:

sentence = "This is a short and boring sentence."
## we'll say that "probs" is the dictionary that contains all my word-probability pairs
## this is the loop I'm trying to run my sentence through:
problist = []
for x in sentence:
    problist += probs[x]

## my thinking is that the code above will create a list of each word in the sentence's probability
## then I can find the product of the list using numpy
import numpy
sentprob = numpy.prod(problist)

Однако, как я уже сказал, этот код, похоже, всегда возвращает вероятность 1. Что я делаю неправильно?

1 Ответ

2 голосов
/ 27 января 2020

Проблема с вашим кодом:

for x in sentence:
    problist += probs[x]

x здесь не слово, а буква. То есть вы ищете в своем словаре вероятность T, h, i ...
Что касается результата, равного 1, то do c говорит:

Продуктом пустого массива является нейтральный элемент 1

Попробуйте использовать это:

for x in sentence.split():
    problist += probs[x]

Обратите внимание, что . в конец предложения - все еще проблема, поскольку последний мир был бы sentence.. Вы должны удалить все ., ,, ? ... et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...