Как оценить свою публикацию?

Близится Новый Год. В Хабаровске он уже наступил, поздравляю!

По традиции, нужно подвести итоги уходящего года, и я решил перечитать свои посты. Перечитать-то перечитал, но как их оценить? Карма? Рейтинг? Просмотры? Слишком сухо и серьезно. Попугаи? Слишком несерьезно. Я решил измерять в Milfgard-ах.


Методика измерения: достаем посты Milfgard, и считаем частоту использования букв. Самый простой аналог фоносемантического анализа.

public static class SymbolsExtractor     {         private static readonly char[] _russianSymbols = "абвгдеёжзиклмнопрстуфхцчшщъыьэюя".ToCharArray(); // 32 русских буквы         public static char[] RussianSymbols => _russianSymbols.ToArray();          public static Dictionary<char, double> SymbolsFrequences(this string text)         {             var symbolsQty = text.ToCharArray().Count(symbol => _russianSymbols.Contains(symbol)); // Длина текста (считаются лишь русские буквы)             double symbolPercentage = 1.00/symbolsQty;               var result = new Dictionary<char, double>();             foreach (char russianSymbol in _russianSymbols)             {                 double inclusions = text.ToLower().ToCharArray()                      .Count(textSymbol => textSymbol == russianSymbol) // Считаем сколько раз буква встречается в тексте                     * (symbolPercentage); // Делим на длину текста                 inclusions = Math.Round(inclusions, 3); // Округляем до долей процента                 result.Add(russianSymbol, inclusions);             }              return result; // В результате: символы и их частоты         }      }

Я взял пять последних постов, пять первых, и посчитал медианы. Результат (Буква-Ранний Милфгард-Поздний Милфгард):

а 0.0864 0.09
б 0.0148 0.0172
в 0.043 0.0388
г 0.0164 0.0166
д 0.0294 0.0292
ъ 0 0
ы 0.0228 0.0204
ь 0.0176 0.0186
э 0.0038 0.0042
ю 0.0064 0.0058
я 0.0186 0.018

Как видно, отличие есть. Сравнивать, очевидно, надо с последними постами, я же провожаю 2016 год. Сравнить надо быстро: через два часа за стол. Поэтому среднеквадратичное отклонение от медианы Милфгарда не катит. Вместо этого я дополнительно беру медиану от постов Alizar, и сравниваю свою медиану с Милфгардовой и Ализаровой.

int result = 0;              foreach (var stat in stats)             {                 double MilfgardDiff = Math.Abs(stat.NewMilfgard - stat.Oxoron); // Сравниваю медианы: мою и Milfgard                 double AlizarDiff = Math.Abs(stat.Alizar - stat.Oxoron); // Сравниваю медианы: мою и Alizar                 char res = MilfgardDiff > AlizarDiff ? 'M'                                                                    : Math.Abs(MilfgardDiff - AlizarDiff) < 0.0001 ? 'N'                                                                    : 'A';                 if (res == 'M') result++;  // Ближе к Milfgard                 if (res == 'A') result--; // Ближе к Alizar                         }              Console.WriteLine();             Console.WriteLine(result < 0 ? $"{-result} ALizar" : $"{result} Milfgard"); // Результат. Для меня - 8 Alizar 

Как видим, полученный метод оценки прост и универсален. Область его применения чрезвычайно широка: можно сравнивать свое сходство с джавистами и шарпистами, рубистами и пхпешниками, эфШарпистами и хаскелистами. Также можно определить какой фреймворк JS лучше всего подходит вашей личности. Но какой бы результат не вышел — стремитесь к новым вершинам, коллеги, чтобы другие люди сравнивали себя с вами. С праздником!

P. S. Milfgard и Alizar выбраны исключительно для демонстрации работы метода, как одни из самых примечательных авторов хабры.
ссылка на оригинал статьи https://habrahabr.ru/post/318864/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *