Определение темы разговора программно - PullRequest
2 голосов
/ 06 декабря 2011

Возможно, это очень сложный вопрос, но в любом случае вот мой вопрос.

Мне интересно, как лучше определить тему разговора? Разговор происходит через IRC. В прошлом я писал чат-ботов, которые интерпретировали тему довольно хорошо, но не так точно, как хотелось бы.

В прошлом мне приходилось составлять списки распространенных слов, таких как "the" и "a", а затем отфильтровывать их из массива тем. Я не знаю, если это правильный способ сделать это.

Мне интересно, есть ли какой-нибудь частотный алгоритм, который позволил бы мне определить, какое слово является текущей темой для разговора.

Будем весьма благодарны за любые предложения относительно того, как этого можно достичь. Спасибо.

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Обработка естественного языка может быть очень трудной, но вы все равно можете получить некоторые результаты, используя только основные принципы.Предложение Даниэля Габриэля использовать закон Ципфа является хорошим.

Обзорная книга, такая как Основы статистической обработки естественного языка Мэннинга и Шютце *, может быть полезной - она ​​объясняет многиеобщие методы, и укажет вам более специализированные ресурсы.

(Их Введение в поиск информации тоже отлично, и на сайте есть бесплатный PDF.)

1 голос
/ 06 декабря 2011

Есть нечто, называемое Законом Ципфа . Он может быть точно применен только к тексту, написанному человеком, и должен иметь некоторую длину.

Результатом прохождения текста по такому алгоритму будет набор ключевых слов (5% -7% от исходного текста), которые близко описывают тему текста.

...