Author Topic: Распознавание темы в наборе слов  (Read 2545 times)

0 Members and 1 Guest are viewing this topic.

Offline tbb

  • Posts: 6
Привет! Подскажите пожалуйста, как, имея набор связанных слов, к примеру, вырезка из ленты новостей, распознать о чём идёт речь. Естественно меня интересует распознавание темы без участия  участия распознавателя в человеческом мозгу. Тоесть распознавание должно быть выполнено на компьютере. Тоесть имея некоторый текст, можно выделить ключевые слова, отбросить стоп слова и т.д......но как тему распознать???  :srch:

Далее, имея два набора слов, каким образом можно определить их схожесть? Тоесть я полагаю, что можно определить примерные темы первого набора слов, тоже самое для второго и в принципе можно будет сравнить на сколько схожи темы двух наборов и определить, одна ли это была тема или же два набора были из разных тем....верно?  :???

 :o Что ни у кого ваще никаких мыслей что ли нет? Речь идёт о Text Mining :smoke:

Offline beaver

  • Posts: 57
  • Gender: Male
В общем виде задачу можно сформулировать: нужна функция P(w_1, ..., w_n, t), вычисляющую вероятность, что текст из слов w_1, ... w_n (w_i принадлежит W, множеству слов) принадлежит теме t (t принадлежит T, множеству тем)... Т.к. это вероятность, сумма P(w_1, ..., w_n, t_i) для всех i должна быть равна 1.

Проще сделать допущение, что тема не зависит от порядка расположения слов в тексте, только от самих этих слов... Тогда модель упрощается: только функция q(w, t), где w — слово, t — тема, q(w, t) — вероятность, что слово w встречается в текстах на тему t.

Нужна таблица для значений q(w, t). Понятно: не в ручную составлять, на основе корпуса... В качестве корпуса можно взять готовые новостные сайты, где у каждой новости есть тема... q(w, t)=c(w,t)/c(w) где c(w,t) — число встреч со словом w в текстах на тему t, c(w) — число встреч слова w вообще...

Тогда P(w_1, ..., w_n, t) = q(w_1, t) * q(w_2, t) * ... * q(w_n, t)... Вычисляем вероятности для всех тем, выбираем тему с максимальной вероятностью.

Для лучшей работы стоит использовать стеминг: отбрасывать окончания в q(w, t)... Без него нужен неприлично большой тренировочный корпус!

Для скорости лучше использовать выделение ключевых ослов... о котором вы сказали... Тогда считаем вероятность не для всех слов текста, медленно, а только для ключевых, быстро.

Заодно посмотрите готовую реализацию... для вдохновления: http://viewer.opencalais.com/
Вы можете купить шубу в натуральном цвете, который варьируется от черного до темно-коричневого, от палевого до золотистого. А, возможно, вы предпочтете шубку в цветном варианте: жемчужном, кофейном, сером или даже красном или ярко-синем. На каком бы фасоне и оттенке вы не остановились, можете не сомневаться: бобёр – отличный выбор.

Offline tbb

  • Posts: 6
Посмотрел на готовую реализацию - не плохо, даже очень. Но мне нужна ещё одна фишка, а именно распознавание тематики текста во времени, тоесть есть набор текста, у каждого слова есть время, когда оно звучит в исходном звуковом фале (после моего самопального распознавателя речи) и надо определить, в какой момент происходит смена темы и с какой на какую......вот это уже конечно сложно.....Может есть идеи какие - нибуть? :what:

Offline beaver

  • Posts: 57
  • Gender: Male
Да, это сложнее... Хочу заметить, что далее мои рассуждения глубоко теоретичны. Я не пробовал всё это реализовывать. С такими задачами не сталкивался.


Возможно, имеет смысл разбить задачу на две: а) разбить текст на отрывки по одной теме, б) определять тему каждого отрывка отдельно. О задаче б) я говорил выше, там всё не так сложно.

Что касается задачи а)... Я не уверен, но: кажется логичным, что смена темы в речи обычно маркируется соответствующими словами: кстати, при этом, далее, итак... Вот, что-то нагуглилось именно про такие слова: http://www.philology.ru/linguistics3/mikuta-00a.htm (правда, с примерами на français). Соответственно, можно приписать разным словам (лучше n-граммам) вероятность, что они заканчивают тему и что они начинают новую тему...

Можно даже попробовать использовать готовые алгоритмы для sentence detection... Но вместо предложений натренировать его на куски сообщений одной темы... Не уверен, что это сработает, но попробовать можно было бы. Вот только я не знаю корпусов, которые можно было бы использовать как тренировочные данные... :(
Вы можете купить шубу в натуральном цвете, который варьируется от черного до темно-коричневого, от палевого до золотистого. А, возможно, вы предпочтете шубку в цветном варианте: жемчужном, кофейном, сером или даже красном или ярко-синем. На каком бы фасоне и оттенке вы не остановились, можете не сомневаться: бобёр – отличный выбор.

Offline tbb

  • Posts: 6
не уверен, но кажется логичным, что смена темы в речи обычно маркируется соответствующими словами: кстати, при этом, далее, итак..
Это кстати хорошая мысль, правда новые темы так же начинаются с новых предложений....но идея достойна изучения. Спасибо за на водку, по экспериментирую - потом отпишусь, если будут какие - то идеи - пиши  :=

Offline beaver

  • Posts: 57
  • Gender: Male
Ну да, ваша идея "новые темы так же начинаются с новых предложений" очень хорошая! :) Я почему-то о ней не подумал!

Ведь и правда: разрезАть текст на предоложения и определить в каждом тему... если больше n кусков по другой теме — считать, что началась другая тема.

Вы, пожалуйста потом скажите на чём остановились: очень интересно... а самому попробовать запрограммировать и посмотреть, что как работает, нет времени... :(
Вы можете купить шубу в натуральном цвете, который варьируется от черного до темно-коричневого, от палевого до золотистого. А, возможно, вы предпочтете шубку в цветном варианте: жемчужном, кофейном, сером или даже красном или ярко-синем. На каком бы фасоне и оттенке вы не остановились, можете не сомневаться: бобёр – отличный выбор.

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: