HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #2  
Старый 10.11.2018, 12:55
InetTester
Новичок
Регистрация: 21.10.2018
Сообщений: 0
С нами: 3979841

Репутация: 0
По умолчанию

Цитата:

Niko_Cry сказал(а):

Добрый день) Не могли бы помочь с построение базы данных. Я новенький в этом, и хотелось бы совета от знающих людей.
У меня есть цель, построить базу SQLite. И в двух словах о программе к которой будет привинчена эта самая база: программа сравнивает два программных кода на плагиат.
И требование к базе : не меньше 4 таблиц в которых по 5 полей. Столкнулся еще с проблемой на счет таблицы "History". В ней будут сведения какой код с каким будет сравниваться. Но как правильно реализовать не понимаю. Может кто-то подскажет или скажет замечание) За ранее спасибо)
Вот что у меня вышло.
Спасибо за помощь и ваше время. Буду очень вам благодарен.

Если нужно сравнивать именно два 'кода' скорее всего тебе потребуется использовать 'алгоритм шинглов' в результате данный скрипт выдаст в % на сколько первый код схож со вторым.
Вот к примеру реализация на Python:

Код:


Код:
# -*- coding: UTF-8 -*-
if __name__ == '__build__':
    raise Exception

def canonize(source):
        stop_symbols = '.,!?:;-\n\r()'

        stop_words = (u'это', u'как', u'так',
        u'и', u'в', u'над',
        u'к', u'до', u'не',
        u'на', u'но', u'за',
        u'то', u'с', u'ли',
        u'а', u'во', u'от',
        u'со', u'для', u'о',
        u'же', u'ну', u'вы',
        u'бы', u'что', u'кто',
        u'он', u'она')

        return ( [x for x in [y.strip(stop_symbols) for y in source.lower().split()] if x and (x not in stop_words)] )

def genshingle(source):
    import binascii
    shingleLen = 10 #длина шингла
    out = []
    for i in range(len(source)-(shingleLen-1)):
        out.append (binascii.crc32(' '.join( [x for x in source[i:i+shingleLen]] ).encode('utf-8')))

    return out

def compaire (source1,source2):
    same = 0
    for i in range(len(source1)):
        if source1[i] in source2:
            same = same + 1

    return same*2/float(len(source1) + len(source2))*100

def main():
    text1 = u'' # Текст 1 для сравнения
    text2 = u'' # Текст 2 для сравнения

    cmp1 = genshingle(canonize(text1))
    cmp2 = genshingle(canonize(text2))

    print compaire(cmp1,cmp2)

# Start program
main()
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.