Java源码示例:org.dkpro.statistics.agreement.unitizing.UnitizingAnnotationStudy

示例1
@Override
public Map<String, Double> calculateAgreement(MappedSet<String, String> targetTagsAndAtts, boolean allowMultiTagging) throws IOException, SAXException, MaeDBException {
    Map<String, Double> globalAlphaU = new TreeMap<>();

    UnitizingAnnotationStudy study = new UnitizingAnnotationStudy(numAnnotators, totalDocumentsLength);
    int curDocLength = 0;
    List<String> documents = fileIdx.getDocumentNames();
    for (int i = 0; i < documents.size(); i++) {
        String document = documents.get(i);
        MaeXMLParser[] parses = parseCache.getParses(document);
        for (String tagTypeName : targetTagsAndAtts.keyList()) {
            addTagAsUnits(tagTypeName, parses, curDocLength, study);
        }
        curDocLength += documentLength[i];
    }
    double agree = (new KrippendorffAlphaUnitizingAgreement(study)).calculateAgreement();
    globalAlphaU.put("cross-tag_alpha_u", agree);
    return globalAlphaU;

}
 
示例2
void addTagAsUnits(String tagTypeName, MaeXMLParser[] annotations, int textOffset, UnitizingAnnotationStudy study) {

        int annotator = 0;
        for (MaeXMLParser parse : annotations) {
            if (parse == null) continue;
            for (ParsedTag tag : parse.getParsedTags()) {
                if (tag.getTagTypeName().equals(tagTypeName) && tag.getSpans().length > 0) {
                    for (int[] pair : SpanHandler.convertArrayToPairs(tag.getSpans())) {
                        study.addUnit(pair[0] + textOffset, pair[1] - pair[0], annotator, tagTypeName);
                    }
                }
            }
            annotator++;
        }

    }
 
示例3
void addAttAsUnits(String tagTypeName, String attTypeName, MaeXMLParser[] annotations, int textOffset, UnitizingAnnotationStudy study) {

        int annotator = 0;
        for (MaeXMLParser parse : annotations) {
            if (parse != null) {
                for (ParsedTag tag : parse.getParsedTags()) {
                    if (tag.getTagTypeName().equalsIgnoreCase(tagTypeName) && tag.getSpans().length > 0) {
                        for (ParsedAtt att : parse.getParsedAtts()) {
                            if (att.getTagTypeName().equalsIgnoreCase(tag.getTagTypeName()) &&
                                    att.getAttTypeName().equalsIgnoreCase(attTypeName)) {
                                for (int[] pair : SpanHandler.convertArrayToPairs(tag.getSpans())) {
                                    study.addUnit(pair[0] + textOffset, pair[1] - pair[0], annotator, att.getAttValue());
                                }
                            }
                        }
                    }
                }
            }
            annotator++;
        }
    }