예제 #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public override void update()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue a = addressFunction.getAddressValue();
            AddressValue a = addressFunction.AddressValue;

            if (a.Address == null)
            {
                featureValue.update(symbolTable.getNullValueCode(NullValueId.NO_NODE), symbolTable.getNullValueSymbol(NullValueId.NO_NODE), true, 1);
            }
            else
            {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node = (org.maltparser.core.syntaxgraph.node.DependencyNode)a.getAddress();
                DependencyNode node = (DependencyNode)a.Address;

                if (!node.Root)
                {
                    int indexCode = node.getLabelCode(symbolTable);
                    if (column.Type == ColumnDescription.STRING)
                    {
                        featureValue.update(indexCode, symbolTable.getSymbolCodeToString(indexCode), false, 1);
                    }
                    else
                    {
                        castFeatureValue(symbolTable.getSymbolCodeToString(indexCode));
                    }
                }
                else
                {
                    featureValue.update(symbolTable.getNullValueCode(NullValueId.ROOT_NODE), symbolTable.getNullValueSymbol(NullValueId.ROOT_NODE), true, 1);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Cause the feature function to update the feature value.
        /// </summary>
        /// <exception cref="MaltChainedException"> </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public void update()
        {
            // Retrieve the address value
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg1 = addressFunction.getAddressValue();
            AddressValue arg1 = addressFunction.AddressValue;

            // if arg1 or arg2 is null, then set a NO_NODE null value as feature value
            if (arg1.Address == null)
            {
                featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                featureValue.NullValue = true;
            }
            else
            {
                // Unfortunately this method takes a lot of time  arg1.getAddressClass().asSubclass(org.maltparser.core.syntaxgraph.node.DependencyNode.class);
                // Cast the address arguments to dependency nodes
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node = (org.maltparser.core.syntaxgraph.node.DependencyNode)arg1.getAddress();
                DependencyNode node  = (DependencyNode)arg1.Address;
                int            numof = 0;
                if (numOfRelation == NumOfRelation.DEPS)
                {
                    numof = node.LeftDependentCount + node.RightDependentCount;
                }
                else if (numOfRelation == NumOfRelation.LDEPS)
                {
                    numof = node.LeftDependentCount;
                }
                else if (numOfRelation == NumOfRelation.RDEPS)
                {
                    numof = node.RightDependentCount;
                }
                int  lower = -1;
                bool f     = false;
                foreach (int?upper in normalization.Keys)
                {
                    if (numof >= lower && numof < upper.Value)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode(normalization[lower]);
                        featureValue.Symbol    = normalization[lower];
                        f = true;
                        break;
                    }
                    lower = upper.Value;
                }
                if (f == false)
                {
                    featureValue.IndexCode = table.getSymbolStringToCode(normalization[lower]);
                    featureValue.Symbol    = normalization[lower];
                }
                // Tells the feature value that the feature is known and is not a null value
                featureValue.NullValue = false;
            }
            featureValue.Value = 1;
        }
예제 #3
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public override void update()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue a = addressFunction.getAddressValue();
            AddressValue a = addressFunction.AddressValue;

            if (a.Address == null)
            {
                if (SymbolTable != null)
                {
                    featureValue.IndexCode = SymbolTable.getNullValueCode(NullValueId.NO_NODE);
                    featureValue.Symbol    = SymbolTable.getNullValueSymbol(NullValueId.NO_NODE);
                }
                else
                {
                    featureValue.IndexCode = 0;
                    featureValue.Symbol    = "#null";
                }
                featureValue.NullValue = true;
            }
            else
            {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node = (org.maltparser.core.syntaxgraph.node.DependencyNode)a.getAddress();
                DependencyNode node = (DependencyNode)a.Address;
                if (!node.Root)
                {
                    if (SymbolTable != null && node.hasLabel(SymbolTable))
                    {
                        featureValue.IndexCode = node.getLabelCode(SymbolTable);
                        featureValue.Symbol    = SymbolTable.getSymbolCodeToString(node.getLabelCode(SymbolTable));
                        featureValue.NullValue = false;
                    }
                    else
                    {
                        if (SymbolTable != null)
                        {
                            featureValue.IndexCode = SymbolTable.getNullValueCode(NullValueId.NO_NODE);
                            featureValue.Symbol    = SymbolTable.getNullValueSymbol(NullValueId.NO_NODE);
                        }
                        featureValue.NullValue = true;
                    }
                }
                else
                {
                    if (SymbolTable != null)
                    {
                        featureValue.IndexCode = SymbolTable.getNullValueCode(NullValueId.ROOT_NODE);
                        featureValue.Symbol    = SymbolTable.getNullValueSymbol(NullValueId.ROOT_NODE);
                    }

                    featureValue.NullValue = true;
                }
            }
            featureValue.Value = 1;
        }
        public void CreateWithAddressAndValue()
        {
            Address    address = new Address();
            BigInteger value   = new BigInteger(100);

            var av = new AddressValue(address, value);

            Assert.AreEqual(address, av.Address);
            Assert.AreEqual(value, av.Value);
        }
예제 #5
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public void update()
        {
            // Retrieve the address value
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg1 = addressFunction1.getAddressValue();
            AddressValue arg1 = addressFunction1.AddressValue;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg2 = addressFunction2.getAddressValue();
            AddressValue arg2 = addressFunction2.AddressValue;

            if (arg1.Address != null && arg1.AddressClass == typeof(DependencyNode) && arg2.Address != null && arg2.AddressClass == typeof(DependencyNode))
            {
                DependencyNode node1 = (DependencyNode)arg1.Address;
                DependencyNode node2 = (DependencyNode)arg2.Address;
                try
                {
                    SymbolTable symbolTable = tableHandler.getSymbolTable(column.Name);
                    int         head1       = int.Parse(node1.getLabelSymbol(symbolTable));
                    int         head2       = int.Parse(node2.getLabelSymbol(symbolTable));
                    if (!node1.Root && head1 == node2.Index)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("LEFT");
                        featureValue.Symbol    = "LEFT";
                        featureValue.NullValue = false;
                    }
                    else if (!node2.Root && head2 == node1.Index)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("RIGHT");
                        featureValue.Symbol    = "RIGHT";
                        featureValue.NullValue = false;
                    }
                    else
                    {
                        featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                        featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                        featureValue.NullValue = true;
                    }
                }
                catch (FormatException e)
                {
                    throw new FeatureException("The index of the feature must be an integer value. ", e);
                }
            }
            else
            {
                featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                featureValue.NullValue = true;
            }
            featureValue.Value = 1;
        }
예제 #6
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public override void update()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue a = addressFunction.getAddressValue();
            AddressValue a = addressFunction.AddressValue;

            if (a.Address == null)
            {
                featureValue.IndexCode = SymbolTable.getNullValueCode(NullValueId.NO_NODE);
                featureValue.Symbol    = SymbolTable.getNullValueSymbol(NullValueId.NO_NODE);
                featureValue.NullValue = true;
            }
            else
            {
                //			try {
                //				a.getAddressClass().asSubclass(org.maltparser.core.syntaxgraph.node.DependencyNode.class);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node = (org.maltparser.core.syntaxgraph.node.DependencyNode)a.getAddress();
                DependencyNode node = (DependencyNode)a.Address;
                if (!node.Root)
                {
                    if (node.hasHead())
                    {
                        featureValue.IndexCode = node.HeadEdge.getLabelCode(SymbolTable);
                        featureValue.Symbol    = SymbolTable.getSymbolCodeToString(node.HeadEdge.getLabelCode(SymbolTable));
                        featureValue.NullValue = false;
                    }
                    else
                    {
                        featureValue.IndexCode = SymbolTable.getNullValueCode(NullValueId.NO_VALUE);
                        featureValue.Symbol    = SymbolTable.getNullValueSymbol(NullValueId.NO_VALUE);

                        featureValue.NullValue = true;
                    }
                }
                else
                {
                    featureValue.IndexCode = SymbolTable.getNullValueCode(NullValueId.ROOT_NODE);
                    featureValue.Symbol    = SymbolTable.getNullValueSymbol(NullValueId.ROOT_NODE);
                    //					featureValue.setKnown(true);
                    featureValue.NullValue = true;
                }
                //			} catch (ClassCastException e) {
                //				featureValue.setCode(getSymbolTable().getNullValueCode(NullValueId.NO_NODE));
                //				featureValue.setSymbol(getSymbolTable().getNullValueSymbol(NullValueId.NO_NODE));
                //				featureValue.setNullValue(true);
                //			}
            }
            featureValue.Value = 1;
        }
예제 #7
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public void update()
        {
            AddressValue a = addressFunction.AddressValue;

            if (a.Address != null && a.AddressClass == typeof(DependencyNode))
            {
                DependencyNode node = (DependencyNode)a.Address;
                try
                {
                    int index = int.Parse(node.getLabelSymbol(tableHandler.getSymbolTable(column.Name)));
                    if (node.Root)
                    {
                        featureValue.IndexCode = table.getNullValueCode(NullValueId.ROOT_NODE);
                        featureValue.Symbol    = table.getNullValueSymbol(NullValueId.ROOT_NODE);
                        featureValue.NullValue = true;
                    }
                    else if (index == 0)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("ROOT");
                        featureValue.Symbol    = "ROOT";
                        featureValue.NullValue = false;
                    }
                    else if (index < node.Index)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("LEFT");
                        featureValue.Symbol    = "LEFT";
                        featureValue.NullValue = false;
                    }
                    else if (index > node.Index)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("RIGHT");
                        featureValue.Symbol    = "RIGHT";
                        featureValue.NullValue = false;
                    }
                }
                catch (FormatException e)
                {
                    throw new FeatureException("The index of the feature must be an integer value. ", e);
                }
            }
            else
            {
                featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                featureValue.NullValue = true;
            }
            featureValue.Value = 1;
        }
예제 #8
0
        /// <summary>
        /// Cause the feature function to update the feature value.
        /// </summary>
        /// <exception cref="MaltChainedException"> </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public void update()
        {
            // Retrieve the address value
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg1 = addressFunction1.getAddressValue();
            AddressValue arg1 = addressFunction1.AddressValue;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg2 = addressFunction2.getAddressValue();
            AddressValue arg2 = addressFunction2.AddressValue;

            //		featureValue.setKnown(true);
            // if arg1 or arg2 is null, then set a NO_NODE null value as feature value
            if (arg1.Address == null || arg2.Address == null)
            {
                featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                featureValue.Value     = 1;

                featureValue.NullValue = true;
            }
            else
            {
                // Unfortunately this method takes a lot of time  arg1.getAddressClass().asSubclass(org.maltparser.core.syntaxgraph.node.DependencyNode.class);
                // Cast the address arguments to dependency nodes
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node1 = (org.maltparser.core.syntaxgraph.node.DependencyNode)arg1.getAddress();
                DependencyNode node1 = (DependencyNode)arg1.Address;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node2 = (org.maltparser.core.syntaxgraph.node.DependencyNode)arg2.getAddress();
                DependencyNode node2 = (DependencyNode)arg2.Address;

                if (!node1.Root && !node2.Root)
                {
                    // Calculates the distance
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int index1 = node1.getIndex();
                    int index1 = node1.Index;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int index2 = node2.getIndex();
                    int index2 = node2.Index;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int distance = Math.abs(index1-index2);
                    int distance = Math.Abs(index1 - index2);


                    int  lower = -1;
                    bool f     = false;
                    foreach (int?upper in normalization.Keys)
                    {
                        if (distance >= lower && distance < upper.Value)
                        {
                            featureValue.IndexCode = table.getSymbolStringToCode(normalization[lower]);
                            featureValue.Symbol    = normalization[lower];
                            featureValue.Value     = 1;
                            f = true;
                            break;
                        }
                        lower = upper.Value;
                    }
                    if (f == false)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode(normalization[lower]);
                        featureValue.Symbol    = normalization[lower];
                        featureValue.Value     = 1;
                    }

                    // Tells the feature value that the feature is known and is not a null value

                    featureValue.NullValue = false;
                }
                else
                {
                    // if node1 or node2 is a root node, set a ROOT_NODE null value as feature value
                    featureValue.IndexCode = table.getNullValueCode(NullValueId.ROOT_NODE);
                    featureValue.Symbol    = table.getNullValueSymbol(NullValueId.ROOT_NODE);
                    featureValue.Value     = 1;
                    featureValue.NullValue = true;
                }
            }
        }
예제 #9
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public void update()
        {
            // Retrieve the address value
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg1 = addressFunction1.getAddressValue();
            AddressValue arg1 = addressFunction1.AddressValue;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue arg2 = addressFunction2.getAddressValue();
            AddressValue arg2 = addressFunction2.AddressValue;

            try
            {
                if (arg1.Address == null || arg2.Address == null)
                {
                    featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                    featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                    featureValue.NullValue = true;
                }
                else
                {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node1 = (org.maltparser.core.syntaxgraph.node.DependencyNode)arg1.getAddress();
                    DependencyNode node1 = (DependencyNode)arg1.Address;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node2 = (org.maltparser.core.syntaxgraph.node.DependencyNode)arg2.getAddress();
                    DependencyNode node2 = (DependencyNode)arg2.Address;

                    int head1 = -1;
                    int head2 = -1;

                    if (node1.hasHead())
                    {
                        head1 = node1.Head.Index;                         //lines below don't seem to work
                        //head1 = Integer.parseInt(node1.getHeadEdgeLabelSymbol(column.getSymbolTable()));
                        //if ( node1.hasHeadEdgeLabel(column.getSymbolTable()) )
                        //	head1 = Integer.parseInt(node1.getHeadEdgeLabelSymbol(column.getSymbolTable()));
                    }
                    if (node2.hasHead())
                    {
                        head2 = node2.Head.Index;                         //lines below don't seem to work
                        //head2 = Integer.parseInt(node2.getHeadEdgeLabelSymbol(column.getSymbolTable()));
                        //if ( node2.hasHeadEdgeLabel(column.getSymbolTable()) )
                        //	head2 = Integer.parseInt(node2.getHeadEdgeLabelSymbol(column.getSymbolTable()));
                    }
                    if (!node1.Root && head1 == node2.Index)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("LEFT");
                        featureValue.Symbol    = "LEFT";
                        featureValue.NullValue = false;
                    }
                    else if (!node2.Root && head2 == node1.Index)
                    {
                        featureValue.IndexCode = table.getSymbolStringToCode("RIGHT");
                        featureValue.Symbol    = "RIGHT";
                        featureValue.NullValue = false;
                    }
                    else
                    {
                        featureValue.IndexCode = table.getNullValueCode(NullValueId.NO_NODE);
                        featureValue.Symbol    = table.getNullValueSymbol(NullValueId.NO_NODE);
                        featureValue.NullValue = true;
                    }
                }
            }
            catch (FormatException e)
            {
                throw new FeatureException("The index of the feature must be an integer value. ", e);
            }
            featureValue.Value = 1;
        }
예제 #10
0
 public AddressFunction()
 {
     address = new AddressValue(this);
 }
예제 #11
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void update() throws org.maltparser.core.exception.MaltChainedException
        public override void update()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.feature.value.AddressValue a = addressFunction.getAddressValue();
            AddressValue a = addressFunction.AddressValue;

            if (a.Address == null)
            {
                address.Address = null;
            }
            else
            {
                //			try {
                //				a.getAddressClass().asSubclass(org.maltparser.core.syntaxgraph.node.DependencyNode.class);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.maltparser.core.syntaxgraph.node.DependencyNode node = (org.maltparser.core.syntaxgraph.node.DependencyNode)a.getAddress();
                DependencyNode node = (DependencyNode)a.Address;
                if (subFunction == DGraphSubFunction.HEAD && !node.Root)
                {
                    address.Address = node.Head;
                }
                else if (subFunction == DGraphSubFunction.LDEP)
                {
                    address.Address = node.LeftmostDependent;
                }
                else if (subFunction == DGraphSubFunction.RDEP)
                {
                    address.Address = node.RightmostDependent;
                }
                else if (subFunction == DGraphSubFunction.RDEP2)
                {
                    // To emulate the behavior of MaltParser 0.4 (bug)
                    if (!node.Root)
                    {
                        address.Address = node.RightmostDependent;
                    }
                    else
                    {
                        address.Address = null;
                    }
                }
                else if (subFunction == DGraphSubFunction.LSIB)
                {
                    address.Address = node.SameSideLeftSibling;
                }
                else if (subFunction == DGraphSubFunction.RSIB)
                {
                    address.Address = node.SameSideRightSibling;
                }
                else if (subFunction == DGraphSubFunction.PRED && !node.Root)
                {
                    address.Address = node.Predecessor;
                }
                else if (subFunction == DGraphSubFunction.SUCC && !node.Root)
                {
                    address.Address = node.Successor;
                }
                else if (subFunction == DGraphSubFunction.ANC)
                {
                    address.Address = node.Ancestor;
                }
                else if (subFunction == DGraphSubFunction.PANC)
                {
                    address.Address = node.ProperAncestor;
                }
                else if (subFunction == DGraphSubFunction.LDESC)
                {
                    address.Address = node.LeftmostDescendant;
                }
                else if (subFunction == DGraphSubFunction.PLDESC)
                {
                    address.Address = node.LeftmostProperDescendant;
                }
                else if (subFunction == DGraphSubFunction.RDESC)
                {
                    address.Address = node.RightmostDescendant;
                }
                else if (subFunction == DGraphSubFunction.PRDESC)
                {
                    address.Address = node.RightmostProperDescendant;
                }
                else
                {
                    address.Address = null;
                }
                //			} catch (ClassCastException e) {
                //				address.setAddress(null);
                //			}
            }
        }