Понимание оценки коллокации NLTK для биграмм и триграмм

Предыстория:

Я пытаюсь сравнить пары слов, чтобы увидеть, какая пара «с большей вероятностью встречается» в английском языке США, чем другая пара. Мой план состоял в / состоял в том, чтобы использовать средства коллокации в NLTK для оценки пар слов, причем пара с более высокой оценкой была наиболее вероятной.

Подход:

Я закодировал следующее на Python с помощью NLTK (несколько шагов и импорт удалены для краткости):

bgm    = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tokens)
scored = finder.score_ngrams( bgm.likelihood_ratio  )
print scored

Результаты:

Затем я изучил результаты, используя 2 пары слов, одна из которых должна быть очень высокой. вероятно, будут встречаться вместе, и одна пара, которая не должна («жареные кешью» и «бензиновые кешью»). Я был удивлен, увидев одинаковую оценку сочетания этих слов:

[(('roasted', 'cashews'), 5.545177444479562)]
[(('gasoline', 'cashews'), 5.545177444479562)]

Я ожидал, что в моем тесте «жареные кешью» наберут больше, чем «бензиновые кешью».

Вопросы:

  1. Я неправильно понимаю использование словосочетаний?
  2. Мой код неверен?
  3. Неправильно ли мое предположение, что оценки должны быть разными, и если да, то почему?

Большое спасибо за любую информацию или помощь!

23
задан Doug T. 5 October 2012 в 18:24
поделиться