Как оценить имя пользователя по его уникальности? - PullRequest
0 голосов
/ 24 марта 2019

Допустим, я хочу дать оценку уникальности имени пользователя (то есть, чем выше оценка, тем менее вероятно, что кто-то другой имеет ее).Например, имя пользователя «car» должно иметь очень низкую оценку, а «fastredcar1887 $» должно иметь очень высокую оценку.

Мой код работает отлично и имеет только низкий процент отказов, но я думаю, что лучшепути.каждая буква алфавита увеличивает счет на единицу.Если есть числа, это увеличивает счет на 2, а общее число чисел в имени до степени 2, символы такие же, как числа, но не делятся на 2.

scoreNum=(1/2*totalnumbers)^2+2
ScoreAlpha=totalalpha
ScoreSympol=(totalsymbols)^2+2

Тогда totalscore=scoreNum+Scorealpha+scoresympol

def rating(name):
    rate=0
    num=0
    symbol=0
    thereisnum=False
    thereissymb=False
    for i in range(len(name)):
        if name[i].isnumeric():
            thereisnum=True

            num+=1
        if name[i].isalpha():
            rate+=1
        if name[i] in ",*&^%$#@:!()/\+-.~<>{}?=+@!#":
            thereisnum=True

            symbol+=1
    if thereisnum==True:


        rate+=int(round(1/2*(num)**2+2))
    if thereissymb==True:    
        rate+=int(round((symbol)**2+2))  
    return rate   

Я хочу получить лучшие результаты, например, 123456789 очень распространен, но моя система оценивает его очень высоко.Я считаю, что есть много способов лучше проверить имена пользователей.Например, некоторые буквы встречаются реже.Как лучше всего справиться с этой проблемой?Спасибо.

Ответы [ 2 ]

2 голосов
/ 24 марта 2019

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

1 голос
/ 24 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...