Exemple #1
0
def part2a_0():
    """Check that you have all the features we expect"""
    xs = exampleInput
    phi = Counter({('-BEGIN-', '-FEAT-'): 1.0, ('-FEAT-', 'Beautiful'): 1.0, ('-FEAT-', 'PREV:-BEGIN-'): 1.0, ('-FEAT-', 'NEXT:2'): 1.0, ('-FEAT-', '-CAPITALIZED-'): 1.0, ('-FEAT-', '-POST-CAPITALIZED-'): 0.0})
    phi_ = submission.nerFeatureFunction(0, '-BEGIN-', '-FEAT-', xs)
    grader.requireIsTrue( Counters.approximateEquals(phi, phi_) )

    phi = Counter({('-FEAT-', '-SIZE-'): 1.0, ('-SIZE-', 'PREV:Beautiful'): 1.0, ('-SIZE-', 'NEXT:bedroom'): 1.0, ('-SIZE-', '-PRE-CAPITALIZED-'): 1.0, ('-SIZE-', '2'): 1.0, ('-SIZE-', '-POST-CAPITALIZED-'): 0.0, ('-SIZE-', '-CAPITALIZED-'): 0.0})
    phi_ = submission.nerFeatureFunction(1, '-FEAT-', '-SIZE-', xs) 
    grader.requireIsTrue( Counters.approximateEquals(phi, phi_) )
    
    phi = Counter({('-SIZE-', '-SIZE-'): 1.0, ('-SIZE-', 'PREV:2'): 1.0, ('-SIZE-', 'bedroom'): 1.0, ('-SIZE-', 'NEXT:-END-'): 1.0, ('-SIZE-', '-CAPITALIZED-'): 0.0, ('-SIZE-', '-PRE-CAPITALIZED-'): 0.0})
    phi_ = submission.nerFeatureFunction(2, '-SIZE-', '-SIZE-', xs)
    grader.requireIsTrue( Counters.approximateEquals(phi, phi_) )
Exemple #2
0
def part1b_3():
    """Check that values match our reference"""
    xs = exampleInput
    backward = [
            Counter({'-SIZE-': 0.564, '-FEAT-': 0.435}),
            Counter({'-SIZE-': 0.567, '-FEAT-': 0.432}),
            Counter({'-FEAT-': 0.5, '-SIZE-': 0.5})]
    backward_ = submission.computeBackward(simpleCRF, xs)
    for vec, vec_ in zip( backward, backward_):
        grader.requireIsTrue( Counters.approximateEquals( vec, vec_ ) )
Exemple #3
0
def part1c_1():
    """Check that values match our reference"""
    xs = exampleInput
    T = [ Counter({('-BEGIN-', '-FEAT-'): 0.561, ('-BEGIN-', '-SIZE-'): 0.439}),
          Counter({('-FEAT-', '-SIZE-'): 0.463, ('-SIZE-', '-SIZE-'): 0.343, 
                   ('-SIZE-', '-FEAT-'): 0.096, ('-FEAT-', '-FEAT-'): 0.096}),
          Counter({('-SIZE-', '-SIZE-'): 0.590, ('-SIZE-', '-FEAT-'): 0.217,
                   ('-FEAT-', '-SIZE-'): 0.151, ('-FEAT-', '-FEAT-'): 0.041})
        ]
    T_ = submission.computeEdgeMarginals(simpleCRF, xs)
    for t, t_ in zip(T, T_):
        grader.requireIsTrue( Counters.approximateEquals(t, t_) )
Exemple #4
0
def part2a_0():
    """Check that you have all the features we expect"""
    xs = exampleInput
    phi = Counter({
        ('-BEGIN-', '-FEAT-'): 1.0,
        ('-FEAT-', 'Beautiful'): 1.0,
        ('-FEAT-', 'PREV:-BEGIN-'): 1.0,
        ('-FEAT-', 'NEXT:2'): 1.0,
        ('-FEAT-', '-CAPITALIZED-'): 1.0,
        ('-FEAT-', '-POST-CAPITALIZED-'): 0.0
    })
    phi_ = submission.nerFeatureFunction(0, '-BEGIN-', '-FEAT-', xs)
    grader.requireIsTrue(Counters.approximateEquals(phi, phi_))

    phi = Counter({
        ('-FEAT-', '-SIZE-'): 1.0,
        ('-SIZE-', 'PREV:Beautiful'): 1.0,
        ('-SIZE-', 'NEXT:bedroom'): 1.0,
        ('-SIZE-', '-PRE-CAPITALIZED-'): 1.0,
        ('-SIZE-', '2'): 1.0,
        ('-SIZE-', '-POST-CAPITALIZED-'): 0.0,
        ('-SIZE-', '-CAPITALIZED-'): 0.0
    })
    phi_ = submission.nerFeatureFunction(1, '-FEAT-', '-SIZE-', xs)
    grader.requireIsTrue(Counters.approximateEquals(phi, phi_))

    phi = Counter({
        ('-SIZE-', '-SIZE-'): 1.0,
        ('-SIZE-', 'PREV:2'): 1.0,
        ('-SIZE-', 'bedroom'): 1.0,
        ('-SIZE-', 'NEXT:-END-'): 1.0,
        ('-SIZE-', '-CAPITALIZED-'): 0.0,
        ('-SIZE-', '-PRE-CAPITALIZED-'): 0.0
    })
    phi_ = submission.nerFeatureFunction(2, '-SIZE-', '-SIZE-', xs)
    grader.requireIsTrue(Counters.approximateEquals(phi, phi_))
Exemple #5
0
def part1b_3():
    """Check that values match our reference"""
    xs = exampleInput
    backward = [
        Counter({
            '-SIZE-': 0.564,
            '-FEAT-': 0.435
        }),
        Counter({
            '-SIZE-': 0.567,
            '-FEAT-': 0.432
        }),
        Counter({
            '-FEAT-': 0.5,
            '-SIZE-': 0.5
        })
    ]
    backward_ = submission.computeBackward(simpleCRF, xs)
    for vec, vec_ in zip(backward, backward_):
        grader.requireIsTrue(Counters.approximateEquals(vec, vec_))
Exemple #6
0
def part1c_1():
    """Check that values match our reference"""
    xs = exampleInput
    T = [
        Counter({
            ('-BEGIN-', '-FEAT-'): 0.561,
            ('-BEGIN-', '-SIZE-'): 0.439
        }),
        Counter({
            ('-FEAT-', '-SIZE-'): 0.463,
            ('-SIZE-', '-SIZE-'): 0.343,
            ('-SIZE-', '-FEAT-'): 0.096,
            ('-FEAT-', '-FEAT-'): 0.096
        }),
        Counter({
            ('-SIZE-', '-SIZE-'): 0.590,
            ('-SIZE-', '-FEAT-'): 0.217,
            ('-FEAT-', '-SIZE-'): 0.151,
            ('-FEAT-', '-FEAT-'): 0.041
        })
    ]
    T_ = submission.computeEdgeMarginals(simpleCRF, xs)
    for t, t_ in zip(T, T_):
        grader.requireIsTrue(Counters.approximateEquals(t, t_))