コード例 #1
0
ファイル: lexicon.py プロジェクト: sahitpj/nltk
def parsePrimitiveCategory(chunks, primitives, families, var):
    """
    Parse a primitive category

    If the primitive is the special category 'var', replace it with the
    correct `CCGVar`.
    """
    if chunks[0] == "var":
        if chunks[1] is None:
            if var is None:
                var = CCGVar()
            return (var, var)

    catstr = chunks[0]
    if catstr in families:
        (cat, cvar) = families[catstr]
        if var is None:
            var = cvar
        else:
            cat = cat.substitute([(cvar, var)])
        return (cat, var)

    if catstr in primitives:
        subscrs = parseSubscripts(chunks[1])
        return (PrimitiveCategory(catstr, subscrs), var)
    raise AssertionError('String \'' + catstr +
                         '\' is neither a family nor primitive category.')
コード例 #2
0
ファイル: lexicon.py プロジェクト: sahitpj/nltk
 def __init__(self, start, primitives, families, entries):
     self._start = PrimitiveCategory(start)
     self._primitives = primitives
     self._families = families
     self._entries = entries