Способ вывести размер базы пользователей сайта от выборки взятых имен пользователей

Попробуйте FileUtils из Apache commons-io (методы listFiles и iterateFiles):

File dir = new File(".");
FileFilter fileFilter = new WildcardFileFilter("sample*.java");
File[] files = dir.listFiles(fileFilter);
for (int i = 0; i < files.length; i++) {
   System.out.println(files[i]);
}

Чтобы решить вашу проблему с папками TestX, я сначала перебрал бы список папок:

File[] dirs = new File(".").listFiles(new WildcardFileFilter("Test*.java");
for (int i=0; i<dirs.length; i++) {
   File dir = dirs[i];
   if (dir.isDirectory()) {
       File[] files = dir.listFiles(new WildcardFileFilter("sample*.java"));
   }
}

Довольно грубое решение, но оно должно работать нормально. Если это не соответствует вашим потребностям, вы всегда можете использовать RegexFileFilter.

8
задан Gyan Veda 1 May 2015 в 21:25
поделиться

3 ответа

То, что необходимо сделать, точно оценить вероятность, что определенное имя пользователя существует, учитывая число зарегистрированных пользователей. Позволяет говорят, что N является числом пользователей и u = 1, если пользователь u присутствует и 0, если они отсутствуют.

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

Вы испытываете необходимость в большом количестве данных из сайтов с именами зарегистрированного пользователя и общим количеством пользователей того сайта. Теперь, возьмите любое определенное имя пользователя и вообразите свои точки данных на 2-м графике (с N на x и u на y), там будет одной горизонтальной строкой точек в y=0 и другого в y=1. Вы можете или мусорное ведро ось X, как Вы предполагаете и берете среднюю y координату всех точек данных в мусорном ведре для получения дискретной функции, или Вы могли попытаться соответствовать точкам на графике к некоторому классу функций. Я действительно не знаю то, что тот класс функций, которые были бы - возможно, некоторый закон о питании? (Я думаю о законе Zipf).

У Вас теперь есть распределения вероятностей для применения правила Байеса. Я не знаю, какой предшествующий для N Вы хотели бы использовать. Равномерное распределение (некоторое большое количество) не сделало бы предположений, но я предположу, что большинство сайтов имеет небольшую базу пользователей.

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

Править: У меня была другая мысль; на большинстве форумов (и на StackOverflow) у пользователей есть последовательные идентификаторы пользователей, таким образом, можно использовать единственный сайт с большим количеством пользователей, чтобы дать Вам оценки для всего меньшего N.

6
ответ дан 5 December 2019 в 15:27
поделиться

Я думаю, что это - классная идея!

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

Примечание: тот веб-сайт, кажется, не проверяет, допустимы ли имена пользователей для сайта, так например, он думает, что Gmail позволил бы Вам зарегистрировать "nick@gmail.com" даже при том, что это слишком коротко.

4
ответ дан 5 December 2019 в 15:27
поделиться

Единственный путь состоит в том, чтобы получить большой набор взятых имен пользователей в системах, для которых Вы знаете размер базы пользователей. Данные могут быть скошены в базах пользователей, где определенные имена более распространены. Даже крошечная база пользователей от форума Властелина колец будет, вероятно, содержать имя пользователя Strider, например.

1
ответ дан 5 December 2019 в 15:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: