Example #1
0
    def experiment10(cls):
        alike_distances = []
        for median_num in range(0, 30):
            metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_sum(x, y, median_num=median_num)
            fontFamilies = FontFamily.get_all_families()
            alike_distance = 0
            for fontFamily in fontFamilies:
                print "--new font family---"
                signes = fontFamily.get_signes(30)
                for pair_of_signes in signes:
                    distance = metrics(pair_of_signes[0], pair_of_signes[1])
                    alike_distance += distance
            alike_distances.append(alike_distance)
        diff_distances = []
        for median_num in range(0, 30):
            metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_sum(x, y, median_num=median_num)
            fontFamilies = FontFamily.get_all_families()
            diff_distance = 0
            for fontFamily in fontFamilies:
                print "--new font family---"
                signes = fontFamily.get_signes(15)
                for pair_of_signes in signes:
                    for j, sign in enumerate(pair_of_signes):
                        ind = random_but_not_this(j, len(signes))
                        distance = metrics(sign, signes[ind][j])
                        diff_distance += distance

            diff_distances.append(diff_distance)
        substaction = []
        for alike, diff in zip(alike_distances, diff_distances):
            substaction.append(diff - alike)
        plt.plot(range(0, 30), substaction, 'ro')
        plt.show()
Example #2
0
 def optimize_weights(cls, weights, num_of_signes=100):
     print weights
     metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_sum(x, y, weights=weights)
     fontFamilies = FontFamily.get_all_families()
     alike_distance = 0
     alike_num = 0
     for fontFamily in fontFamilies:
         signes = fontFamily.get_signes(num_of_signes)
         for pair_of_signes in signes:
             distance = metrics(pair_of_signes[0], pair_of_signes[1])
             alike_distance += distance
             alike_num += 1
     print "alike distance=", alike_distance
     #print "alike num=", alike_num
     diff_distance = 0
     diff_num = 0
     for fontFamily in fontFamilies:
         signes = fontFamily.get_signes(num_of_signes / 2)
         for pair_of_signes in signes:
             for j, sign in enumerate(pair_of_signes):
                 ind = random_but_not_this(j, len(signes))
                 distance = metrics(sign, signes[ind][j])
                 diff_distance += max(25 - distance, 0)
                 diff_num += 1
     print "diff distance=", diff_distance
     #print "diff num=", diff_num
     result = alike_distance + diff_distance
     print "total=", result
     return result
Example #3
0
 def experiment3(cls):
     metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_v(x, y)
     fontFamilies = FontFamily.get_all_families()
     alikes = []
     for fontFamily in fontFamilies:
         signes = fontFamily.get_signes(1000)
         for pair_of_signes in signes:
             distance = metrics(pair_of_signes[0], pair_of_signes[1])
             alikes.append(distance)
     plt.hist(alikes)
     plt.show()
Example #4
0
    def experiment7(cls):
        metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_sum(x, y)
        fontFamilies = FontFamily.get_all_families()
        differences = []
        for fontFamily in fontFamilies:
            signes = fontFamily.get_signes(1000)
            for i, sign_array in enumerate(signes):
                for j, sign in enumerate(sign_array):
                    ind = random_but_not_this(j, len(signes))
                    distance = metrics(sign, signes[ind][j])
                    differences.append(distance)

        plt.hist(differences)
        plt.show()
Example #5
0
    def experiment8(cls):
        alike_distances = []
        for median_num in range(0, 30):
            metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_sum(x, y, median_num=median_num)
            fontFamilies = FontFamily.get_all_families()
            alike_distance = 0
            for fontFamily in fontFamilies:
                print "--new font family---"
                signes = fontFamily.get_signes(50)
                for pair_of_signes in signes:
                    distance = metrics(pair_of_signes[0], pair_of_signes[1])
                    alike_distance += distance
            alike_distances.append(alike_distance)

        plt.plot(range(0, 30), alike_distances, 'ro')
        plt.show()
Example #6
0
    def experiment9(cls):
        diff_distances = []
        for median_num in range(0, 30):
            metrics = lambda x, y: PictureMetrics.dameray_levenstein_distance_sum(x, y, median_num=median_num)
            fontFamilies = FontFamily.get_all_families()
            diff_distance = 0
            for fontFamily in fontFamilies:
                print "--new font family---"
                signes = fontFamily.get_signes(50)
                for pair_of_signes in signes:
                    for j, sign in enumerate(pair_of_signes):
                        ind = random_but_not_this(j, len(signes))
                        distance = metrics(sign, signes[ind][j])
                        diff_distance += distance

            diff_distances.append(diff_distance)

        plt.plot(range(0, 30), diff_distances, 'ro')
        plt.show()