Я хотел бы создать алгоритм, чтобы отличать людей, пишущих на форуме под разными никами.
Цель состоит в том, чтобы найти людей, которые регистрируют новую учетную запись на флейм-форуме анонимно, а не под своей основной учетной записью.
В основном я думал о том, чтобы определить слова, которые они используют, и сравнить пользователей по сходству этих слов.
Как показано на картинке, есть user3 и user4, которые используют одни и те же слова. Это означает, что за компьютером, вероятно, стоит один человек.
Понятно, что есть много общих слов, которые используются всеми пользователями. Поэтому я должен сосредоточиться на «специфических для пользователя» словах.
Ввод (связанный с изображением выше):
<word1, user1>
<word2, user1>
<word2, user2>
<word3, user2>
<word4, user2>
<word5, user3>
<word5, user4>
... etc. The order doesnt matter
Вывод должен быть:
user1
user2
user3 = user4
Я делаю это на Java, но я хочу, чтобы этот вопрос не зависел от языка.
Есть идеи, как это сделать?
1) как хранить слова/пользователей? Какие структуры данных?
2) как избавиться от общеупотребительных слов? Я должен как-то игнорировать их среди пользовательских слов. Может быть, я мог бы просто игнорировать их, потому что они теряются. Боюсь, что они скроют существенную разницу "пользовательских слов"
3) как распознавать одних и тех же пользователей? - как-то подсчитывать одинаковые слова между каждым пользователем?
Я заранее очень благодарен за каждый совет.