Как сгруппироваться / сравнивают подобные новостные статьи

В приложении, которое я создаю, я хочу добавить функциональность, которая собирает в группу новости. Я хочу сгруппировать новости о той же теме из других источников в ту же группу. Например, статья о XYZ от CNN и MSNBC была бы в той же группе. Я предполагаю его своего рода сравнение нечеткой логики. Как я пошел бы о выполнении этого с технической точки зрения? Каковы мои опции? Мы еще даже не запустили приложение, таким образом, мы не ограничены в технологиях, мы можем использовать.

Спасибо, заранее для справки!

8
задан Randy 23 July 2010 в 17:25
поделиться

2 ответа

Эта проблема разбивается на несколько подзадач с точки зрения машинного обучения.

Во-первых, вам нужно выяснить, по каким свойствам новостей вы хотите сгруппировать их. Распространенной техникой является использование «пакетов слов» : просто список слов, которые появляются в основной части рассказа или в заголовке. Вы можете выполнить некоторую дополнительную обработку, например удалить общеупотребительные английские « стоп-слова », которые не имеют значения, например «the», «потому что». Вы даже можете выполнить портер корней , чтобы удалить дублирование слов во множественном числе и окончаний слов, таких как «-ion». Этот список слов является вектором признаков каждого документа и будет использоваться для измерения сходства. Возможно, вам придется выполнить некоторую предварительную обработку, чтобы удалить разметку html.

Во-вторых, вы должны определить метрику сходства: похожие истории имеют высокий показатель сходства. Следуя подходу «мешка слов», две истории похожи, если в них есть похожие слова (я здесь нечеткий, потому что есть масса вещей, которые вы можете попробовать, и вам нужно будет посмотреть, что работает лучше всего).

Наконец, вы можете использовать классический алгоритм кластеризации, такой как кластеризация k-средних , который группирует истории вместе на основе метрики сходства.

В итоге: преобразовать новость в вектор характеристик -> определить метрику сходства на основе этого вектора характеристик -> неконтролируемая кластеризация.

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

9
ответ дан 5 December 2019 в 14:00
поделиться

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

Вы можете сделать это в базе данных. Вы можете иметь неограниченное количество тегов для каждой статьи. Затем "группы" можно идентифицировать по одному или нескольким тегам.

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

1
ответ дан 5 December 2019 в 14:00
поделиться