Построение базы

Niko_Cry

Niko_Cry

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

InetTester

Green Team
21.10.2018
199
38
Добрый день) Не могли бы помочь с построение базы данных. Я новенький в этом, и хотелось бы совета от знающих людей.
У меня есть цель, построить базу 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()
 
Последнее редактирование:
  • Нравится
Реакции: Niko_Cry
Мы в соцсетях: