Beispiel #1
0
def determiner(person=None, gender=None, number=None, function='S',
               kind=None, S=None):
    if percent(35):
        det = wf.getNominal('article', gender, number)
        next = (det.value.index, 'article')
    elif percent(50):
        det = wf.getAdjectivePronoun(gender, number, 'determiner')
        next = (det.value.index, 'adjective_pronoun')
    else:
        det = wf.getPossessivePronoun(
            gender, number, aleatory('person'), aleatory('number'))
        next = (det.value.index, 'possessive_pronoun')
    return Tree('determiner', [det], {'next': next})
Beispiel #2
0
def nounPhrase(person=None, gender=None, number=None, function='S',
               kind=None, S=None):

    if person is None:
        if S and verify_semantics(S, 'PESSOA'):
            person = aleatory('person')
        else:
            person = '3'
    if kind is None:
        if person != '3' or percent(15):
            kind = 'personal_pronoun'
        else:
            kind = 'noun'

    L = []
    next = None
    if kind == 'noun':
        det = determiner(person, gender, number, function, kind, S)
        L.append(det)
        next = det.info['next']
    n = nounBar(person, gender, number, function, kind, S)

    if not next:
        next = n.info['next']

    L.append(n)
    return Tree('noun phrase', L, {'head': n.info['head'], 'next': next})
Beispiel #3
0
def prepositionalPhrase(preposition=None, person=None, gender=None,
                        number=None, function='S', kind=None, S=None):

    if person is None:
        if S and verify_semantics(S, 'PESSOA'):
            person = aleatory('person')
        else:
            person = '3'
    if kind is None:
        if person != '3' or percent(15):
            kind = 'personal_pronoun'
        else:
            kind = 'noun'

    np = nounPhrase(person, gender, number, function, kind, S)
    next = np.info['next']
    L = [np]

    p = wf.getPreposition(preposition, gender, number, next)

    L = [Tree("preposition", [p])] + L

    return Tree('prepositional phrase', L, {'head': np.info['head']})