示例#1
0
def execute_all(method, template, show_images):
    """ Start a benchmark for the given method for every avaiable file. """
    benchmark = Benchmark(method(), template)
    benchmark.execute_all(show_images)
    print "Recall: " + str(benchmark.recall())
    print "Precision: " + str(benchmark.precision())
    print "F-Measure: " + str(benchmark.fmeasure())
示例#2
0
def execute_all(method, template, show_images):
    """ Start a benchmark for the given method for every avaiable file. """
    benchmark = Benchmark(method(), template)
    benchmark.execute_all(show_images)
    print "Recall: " + str(benchmark.recall())
    print "Precision: " + str(benchmark.precision())
    print "F-Measure: " + str(benchmark.fmeasure())
示例#3
0
#

from benchmark import Benchmark


def bmm_seg(sentence, word_bank, max_len=100):
    seg = []
    ind = 0 if len(sentence) < max_len else len(sentence) - max_len
    while (len(sentence)):
        while (ind != len(sentence) and sentence[ind:] not in word_bank):
            ind += 1
        if ind == len(sentence):
            ind = len(sentence) - 1
        seg.append(sentence[ind:])
        sentence = sentence[:ind]
        ind = 0 if len(sentence) < max_len else len(sentence) - max_len
    seg.reverse()
    return seg


if __name__ == '__main__':
    bmm_model = Benchmark('bmm')
    sentences, word_bank, max_len = bmm_model.get_data()
    for sentence, ans in sentences:
        seg = bmm_seg(sentence, word_bank, max_len)
        bmm_model.add(seg, ans)

    bmm_model.precision()
    bmm_model.recall()
    bmm_model.F_measure()
示例#4
0
#   An instance of Backward Maximum Match Algorithm
#   All right reversd.
#   Hank Wang @bupt
#

from benchmark import Benchmark

def fmm_seg(sentence,word_bank,max_len=100):
    seg = []
    ind=len(sentence) if len(sentence)<max_len else max_len
    while (len(sentence)):
        while (ind and sentence[:ind] not in word_bank):
            ind-=1
        if ind==0:
            ind=1
        seg.append(sentence[:ind])
        sentence = sentence[ind:]
        ind=len(sentence) if len(sentence)<max_len else max_len
    return seg

if __name__ == '__main__':
    fmm_model = Benchmark('fmm')
    sentences, word_bank, max_len = fmm_model.get_data()
    for sentence,ans in sentences:
        seg = fmm_seg(sentence,word_bank,max_len)
        fmm_model.add(seg,ans)

    fmm_model.precision()
    fmm_model.recall()
    fmm_model.F_measure()
示例#5
0
#
import random
from benchmark import Benchmark
from bmm import bmm_seg
from fmm import fmm_seg


def bdmm_seg(sentence, word_bank, max_len=100, unit=3):
    seg1 = fmm_seg(sentence, word_bank, max_len)
    seg2 = bmm_seg(sentence, word_bank, max_len)
    if len(seg1) == len(seg2):
        best_seg = seg1 if random.randint(0, 1) == 0 else seg2
    elif len([x for x in seg1 if len(x) == unit]) < len(
        [x for x in seg2 if len(x) == unit]):
        best_seg = seg1
    else:
        best_seg = seg2
    return best_seg


if __name__ == '__main__':
    bdmm_model = Benchmark('bdmm')
    sentences, word_bank, max_len = bdmm_model.get_data()
    for sentence, ans in sentences:
        seg = bdmm_seg(sentence, word_bank, max_len)
        bdmm_model.add(seg, ans)

    bdmm_model.precision()
    bdmm_model.recall()
    bdmm_model.F_measure()