Exemple #1
0
        public override void endElement(string name)
        {
            if (COREF_ELEMENT.Equals(name))
            {
                CorefMention mention = mentionStack.Pop();
                mention.span = new Span(mention.span.Start, text.Count);
                mentions.Add(mention);
            }

            if (MucElementNames.CONTENT_ELEMENTS.Contains(name))
            {
                sample.Texts.Add(text.ToArray());
                sample.Mentions.Add(mentions.ToArray());

                mentions.Clear();
                text.Clear();
                isInsideContentElement = false;
            }

            if (MucElementNames.DOC_ELEMENT.Equals(name))
            {
                // TODO fix array syntax

/*
 *                foreach (CorefMention mentions[] in sample.Mentions)
 *                {
 *                      for (int i = 0; i < mentions.Length; i++)
 *                      {
 *                        mentions[i].id = resolveId(mentions[i].id);
 *                      }
 *                }
 */
                samples.Add(sample);
            }
        }
Exemple #2
0
        private static Span getMinSpan(Parse p, CorefMention mention)
        {
            string min = mention.min;

            if (min != null)
            {
                int startOffset = p.ToString().IndexOf(min, StringComparison.Ordinal);
                int endOffset   = startOffset + min.Length;

                Parse[] tokens = p.TagNodes;

                int beginToken = -1;
                int endToken   = -1;

                for (int i = 0; i < tokens.Length; i++)
                {
                    if (tokens[i].Span.Start == startOffset)
                    {
                        beginToken = i;
                    }

                    if (tokens[i].Span.End == endOffset)
                    {
                        endToken = i + 1;
                        break;
                    }
                }

                if (beginToken != -1 && endToken != -1)
                {
                    return(new Span(beginToken, endToken));
                }
            }

            return(null);
        }