Обнаружение пользователя за несколькими учетными записями по словам, которые он использует

Я хотел бы создать алгоритм, чтобы отличать людей, пишущих на форуме под разными никами.

Цель состоит в том, чтобы найти людей, которые регистрируют новую учетную запись на флейм-форуме анонимно, а не под своей основной учетной записью.

В основном я думал о том, чтобы определить слова, которые они используют, и сравнить пользователей по сходству этих слов.

Users using words

Как показано на картинке, есть 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) как распознавать одних и тех же пользователей? - как-то подсчитывать одинаковые слова между каждым пользователем?

Я заранее очень благодарен за каждый совет.

5
задан sch 18 March 2012 в 11:38
поделиться