Я хочу знать эффективные алгоритмы / структуры данных для идентификации приведенной ниже информации в потоковых данных.
Рассмотрим потоковые данные в режиме реального времени, такие как твиттер. В основном меня интересуют приведенные ниже запросы, а не хранение фактических данных.
Мне нужно, чтобы мои запросы выполнялись на реальных данных, но не на дубликатах.
Поскольку я не заинтересован в сохранении полных данных, мне будет сложно определить дубликаты сообщений. Тем не менее, я могу хэшировать все сообщения и проверять их. Но я также хотел бы выделить почти одинаковые посты. Как я могу этого добиться.
Определите топ k тем, обсуждаемых пользователями.
Я хочу определить главные темы, обсуждаемые пользователями. Я не хочу слова с наибольшей частотой, как показано в твиттере. Вместо этого я хочу дать высокоуровневое название темы наиболее часто встречающихся слов.
Я бы хотел, чтобы моя система работала в режиме реального времени. Я имею в виду, что моя система должна обрабатывать любое количество трафика.
Я могу думать о подходе сокращения карты, но я не уверен, как справиться с проблемами синхронизации. Например, повторяющиеся сообщения могут достигать разных узлов, и оба они могут хранить их в индексе.
В типичном источнике новостей будут удаляться все стоп-слова в данных. В моей системе я хотел бы обновить свой список стоп-слов, определяя наиболее часто встречающиеся слова по широкому кругу тем.
Каким будет эффективный алгоритм / структура данных для достижения этой цели.
Я хотел бы хранить темы в течение определенного периода времени для извлечения интересных данных из данных. Скажем, в пятницу вечером все хотят пойти в кино. каким будет эффективный способ хранения этих данных.
Я думаю о том, чтобы сохранить его в распределенной файловой системе hadoop, но через некоторое время эти индексы станут настолько большими, что ввод-вывод станет моим главным узким местом.
Рассмотрим многоязычные данные из твитов по всему миру. Как я могу определить похожие темы, которые обсуждаются в географическом регионе?
Здесь есть 2 проблемы. Одним из них является определение используемого языка. Это может быть идентифицировано на основе человека, пишущего в Твиттере. Но эта информация может повлиять на конфиденциальность пользователей. Другая идея, может быть, запустить его через алгоритм обучения. Какой лучший метод в настоящее время используется для этого. Другая проблема - это поиск слова в словаре и привязка его к общему промежуточному языку, например, к английскому. Как позаботиться о неоднозначности смысла слова, как одно и то же слово, используемое в разных конкурсах.
Определить границы слова
Одна из возможностей - использовать какой-то алгоритм обучения. Но каков наилучший подход? Это в некоторой степени похоже на устранение неоднозначности смысла слова, потому что вы сможете определить границы слова на основе фактического предложения.
Я думаю о разработке прототипа и оценке системы, а не конкретной реализации. Я думаю, что это не возможно, чтобы удалить данные Twitter в режиме реального времени. Я думаю, что этот подход можно проверить на некоторых данных, свободно доступных в Интернете. Любые идеи, где я могу получить эти данные.
Ваш отзыв приветствуется.
Спасибо за ваше время.
- Бала