Люди, за которыми вы можете следить
Вы можете использовать расчеты на основе факторов:
factorA = getFactorA(); // say double(0.3)
factorB = getFactorB(); // say double(0.6)
factorC = getFactorC(); // say double(0.8)
result = (factorA+factorB+factorC) / 3 // double(0.5666666666666667)
// if result is more than 0.5, you show this person
Так, в случае с Twitter, «Люди, за которыми вы можете следить», могут основываться наСледующие факторы (пользователь A - это пользователь, просматривающий эту функцию «Люди, за которыми вы можете следить», может быть больше или меньше факторов):
- Относительность между частыми ключевыми словами, найденными в твитах пользователей A и B1009 *
- Относительность между описанием профиля обоих пользователей
- Относительность между местоположением пользователя A и B
- Является ли человек, которым следует пользователь A, следующим пользователем B?
Так где они сравнивают "людей, за которыми вы можете следовать"?Список, вероятно, был составлен из людей с большим количеством подписчиков (вероятно, это знаменитости, альфа-гики, известные продукты / услуги и т. Д.) И [люди, за которыми следит пользователь А].
В основномздесь есть определенный уровень интеллектуального анализа данных: чтение твитов и биографий, расчеты.Это может быть выполнено на ежедневной или еженедельной работе cron, когда загрузка сервера минимальна за день (или может быть сделана 24/7 на отдельном сервере).
Как вы подключены
Это, вероятно, умная работа, чтобы вы почувствовали, что грубо сила была проделана для определения пути.Однако после некоторого поверхностного исследования я обнаружил, что это просто:
Скажите, что вы - пользователь A;Пользователь B - ваше соединение;Пользователь C является подключением пользователя B.
Для того, чтобы вы могли посетить пользователя C, вам необходимо сначала посетить профиль пользователя B.Посещая профиль пользователя B, веб-сайт уже сохраняет информацию, указывающую, что пользователь A находится в профиле пользователя B.Поэтому, когда вы посещаете пользователя C от пользователя B, веб-сайт немедленно сообщает вам, что «пользователь A -> пользователь B -> пользователь C», игнорируя все другие возможные пути.
Это максимальный уровень, как у пользователя C, Пользователь не может продолжать просматривать свои соединения, пока пользователь С не станет соединением пользователя А.
Источник: наблюдение LinkedIN
Похож на вас
Это то же самое, что и #1 (Люди, за которыми вы можете следить), за исключением того, что алгоритм читает в другом списке людей.Список людей, которые читает алгоритм, это те люди, за которыми вы следите.
Вы имели в виду
Ну, вы все поняли, за исключением того, что Google, вероятно, использовал больше, чем просто soundex.Там есть перевод языка, замена слова и многие другие алгоритмы, используемые для случая Google.Я не могу комментировать это, потому что это, вероятно, станет очень сложным, и я не эксперт по языкам.
Если мы немного больше изучим инфраструктуру Google, мы обнаружим, что у Google есть серверы, предназначенные дляУслуги по орфографии и переводу.Более подробную информацию о платформе Google можно получить по адресу http://en.wikipedia.org/wiki/Google_platform.
Заключение
Ключом к высокоинтенсивным алгоритмам является кэширование.Как только вы кешируете результат, вам не нужно загружать его каждую страницу.Google это делает, Stack Overflow делает это (на большинстве страниц со списком вопросов) и Twitter тоже не удивительно!
По сути, алгоритмы определяются разработчиками.Вы можете использовать чужие алгоритмы, но в конечном итоге вы также можете создавать свои собственные.