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++;
}
}