private static Multimap<Symbol, Symbol> loadTypesToValidRolesMap(final Parameters params)
throws IOException {
final Multimap<Symbol, Symbol> typesToValidRolesInitial = FileUtils.loadSymbolMultimap(
Files.asCharSource(params.getExistingFile("typeAndRoleFile"), Charsets.UTF_8));
final Set<Symbol> alwaysValidRoles = params.getSymbolSet("alwaysValidRoles");
final ImmutableMultimap.Builder<Symbol, Symbol> typesToValidRolesB = ImmutableMultimap.builder();
typesToValidRolesB.putAll(typesToValidRolesInitial);
for (final Symbol eventType : typesToValidRolesInitial.keySet()) {
typesToValidRolesB.putAll(eventType, alwaysValidRoles);
}
return typesToValidRolesB.build();
}
java类com.google.common.collect.ImmutableMultimap的实例源码
FilterAnswerKeyByTypeAndRole.java 文件源码
项目:tac-kbp-eal
阅读 27
收藏 0
点赞 0
评论 0
_CorpusEventLinking.java 文件源码
项目:tac-kbp-eal
阅读 30
收藏 0
点赞 0
评论 0
@Value.Derived
public ImmutableMultimap<DocEventFrameReference, CorpusEventFrame> docEventsToCorpusEvents() {
final ImmutableMultimap.Builder<DocEventFrameReference, CorpusEventFrame> ret =
ImmutableMultimap.builder();
for (final CorpusEventFrame corpusEventFrame : corpusEventFrames()) {
for (final DocEventFrameReference docEventFrameReference : corpusEventFrame
.docEventFrames()) {
ret.put(docEventFrameReference, corpusEventFrame);
}
}
return ret.build();
}
CorefAnnotation.java 文件源码
项目:tac-kbp-eal
阅读 21
收藏 0
点赞 0
评论 0
private CorefAnnotation(final Symbol docId, final Multimap<Integer, KBPString> idToCASes,
final Map<KBPString, Integer> CASesToIDs, final Set<KBPString> unannotated) {
this.docId = checkNotNull(docId);
this.idToCASes = ImmutableMultimap.copyOf(idToCASes);
this.CASesToIDs = ImmutableMap.copyOf(CASesToIDs);
this.unannotated = ImmutableSet.copyOf(unannotated);
checkConsistency();
}
ExactMatchEventArgumentLinkingAligner.java 文件源码
项目:tac-kbp-eal
阅读 31
收藏 0
点赞 0
评论 0
/**
* Converts a {@link ResponseLinking} to an {@link EventArgumentLinking} using a {@link
* CorefAnnotation} from an {@link com.bbn.kbp.events2014.AnswerKey} to canonicalize the
* responses. If the canonicalization is inconsistent with the response linking, an {@link
* java.lang.IllegalArgumentException} will be thrown.
*/
public EventArgumentLinking align(ResponseLinking responseLinking,
AnswerKey answerKey) {
checkArgument(answerKey.docId() == responseLinking.docID());
// assertLinkingSubsetOfAnswerKey(responseLinking, answerKey);
// the above assertion was too strong - the system response linking could
// validly include responses which were not included in the answerKey because
// there was a higher scoring system response in the same equivalence class
final ImmutableMultimap<TypeRoleFillerRealis, Response> canonicalToResponses =
Multimaps.index(responseLinking.allResponses(),
TypeRoleFillerRealis.extractFromSystemResponse(
answerKey.corefAnnotation().strictCASNormalizerFunction()));
final Multimap<Response, TypeRoleFillerRealis> responsesToCanonical =
canonicalToResponses.inverse();
final ImmutableSet.Builder<TypeRoleFillerRealisSet> coreffedArgs = ImmutableSet.builder();
for (final ResponseSet responseSet : responseLinking.responseSets()) {
coreffedArgs.add(TypeRoleFillerRealisSet.from(
canonicalizeResponseSet(responseSet.asSet(),
canonicalToResponses, responsesToCanonical)));
}
final ImmutableSet<TypeRoleFillerRealis> incompleteResponses = canonicalizeResponseSet(
responseLinking.incompleteResponses(), canonicalToResponses, responsesToCanonical);
return EventArgumentLinking.builder().docID(responseLinking.docID())
.eventFrames(coreffedArgs.build()).incomplete(incompleteResponses).build();
}
ExactMatchEventArgumentLinkingAligner.java 文件源码
项目:tac-kbp-eal
阅读 30
收藏 0
点赞 0
评论 0
@Override
public ResponseLinking alignToResponseLinking(EventArgumentLinking eventArgumentLinking,
AnswerKey answerKey) {
// For every Response in answerKey, answerKey.corefAnnotation().strictCASNormalizerFunction() will try to find
// a canonical coreferent for the Response's CAS (KBPString), by checking CorefAnnotation.CASesToIDs
// If the KBPString does not exist in CASesToIDs, then an Exception will be thrown
final ImmutableMultimap<TypeRoleFillerRealis, Response> canonicalToResponses =
Multimaps.index(answerKey.allResponses(),
TypeRoleFillerRealis.extractFromSystemResponse(
answerKey.corefAnnotation().strictCASNormalizerFunction()));
final ImmutableSet.Builder<Response> incompletes = ImmutableSet.builder();
for (final TypeRoleFillerRealis incompleteEquivClass : eventArgumentLinking.incomplete()) {
incompletes.addAll(canonicalToResponses.get(incompleteEquivClass));
}
final ImmutableSet.Builder<ResponseSet> responseSets = ImmutableSet.builder();
for (final TypeRoleFillerRealisSet equivClassSet : eventArgumentLinking.eventFrames()) {
final ImmutableSet.Builder<Response> setBuilder = ImmutableSet.builder();
for (final TypeRoleFillerRealis trfr : equivClassSet.asSet()) {
setBuilder.addAll(canonicalToResponses.get(trfr));
}
responseSets.add(ResponseSet.from(setBuilder.build()));
}
return ResponseLinking.builder().docID(answerKey.docId()).responseSets(responseSets.build())
.incompleteResponses(incompletes.build()).build();
}
SingleFileQueryAssessmentsLoader.java 文件源码
项目:tac-kbp-eal
阅读 20
收藏 0
点赞 0
评论 0
public final CorpusQueryAssessments loadFrom(final CharSource source) throws IOException {
final List<String> lines = source.readLines();
final List<QueryResponse2016> queries = Lists.newArrayList();
final Map<QueryResponse2016, String> metadata = Maps.newHashMap();
final ImmutableMultimap.Builder<QueryResponse2016, Symbol> responsesToSystems =
ImmutableMultimap.builder();
final Map<QueryResponse2016, QueryAssessment2016> assessments = Maps.newHashMap();
Optional<String> lastMetadata = Optional.absent();
for (final String line : lines) {
if (line.startsWith("#")) {
lastMetadata = Optional.of(line.trim().substring(1));
} else {
final String[] parts = line.trim().split("\t");
checkArgument(parts.length == 5, "expected five columns, but got " + parts.length);
final Symbol queryID = Symbol.from(parts[0]);
final Symbol docID = Symbol.from(parts[1]);
final String[] systemIDs = parts[2].split(",");
final ImmutableSortedSet<CharOffsetSpan> spans = extractPJSpans(parts[3]);
final QueryAssessment2016 assessment = QueryAssessment2016.valueOf(parts[4]);
final QueryResponse2016 query =
QueryResponse2016.builder().queryID(queryID).docID(docID)
.addAllPredicateJustifications(spans).build();
queries.add(query);
for(final String systemID: systemIDs) {
responsesToSystems.put(query, Symbol.from(systemID));
}
if (!assessment.equals(QueryAssessment2016.UNASSESSED)) {
assessments.put(query, assessment);
}
if (lastMetadata.isPresent()) {
metadata.put(query, lastMetadata.get());
lastMetadata = Optional.absent();
}
}
}
return CorpusQueryAssessments.builder().addAllQueryReponses(queries).assessments(assessments)
.queryResponsesToSystemIDs(responsesToSystems.build())
.metadata(metadata).build();
}
AnswerAlignment.java 文件源码
项目:tac-kbp-eal
阅读 25
收藏 0
点赞 0
评论 0
private AnswerAlignment(
final Multimap<Answerable, LeftAnswer> equivalenceClassesToLeftItems,
final Multimap<Answerable, RightAnswer> equivalenceClassesToRightItems) {
this.ecToLeft = ImmutableMultimap.copyOf(equivalenceClassesToLeftItems);
this.ecToRight = ImmutableMultimap.copyOf(equivalenceClassesToRightItems);
// build set of equivalence classes
final ImmutableSet.Builder<Answerable> classesBuilder = ImmutableSet.builder();
classesBuilder.addAll(equivalenceClassesToLeftItems.keySet());
classesBuilder.addAll(equivalenceClassesToRightItems.keySet());
this.answerables = classesBuilder.build();
}
MultimapsTest.java 文件源码
项目:de.flapdoodle.solid
阅读 27
收藏 0
点赞 0
评论 0
@Test
public void flattenSampleWithTwoCollections() {
ImmutableList<ImmutableMap<String, Integer>> result = Multimaps.flatten(ImmutableMultimap.<String, Integer>builder()
.putAll("a", 1,4)
.putAll("b", 2,3)
.build());
assertEquals(4,result.size());
assertEquals("[{a=1, b=2}, {a=4, b=2}, {a=1, b=3}, {a=4, b=3}]",result.toString());
}
EAScoringObserver.java 文件源码
项目:tac-kbp-eal
阅读 32
收藏 0
点赞 0
评论 0
@MoveToBUECommon
private static <K, V> ImmutableMultimap<K, V> combineMapsToMultimap(
Iterable<? extends Map<K, V>> maps) {
final ImmutableMultimap.Builder<K, V> ret = ImmutableMultimap.builder();
for (final Map<K, V> map : maps) {
ret.putAll(Multimaps.forMap(map));
}
return ret.build();
}
MultimapsTest.java 文件源码
项目:de.flapdoodle.solid
阅读 29
收藏 0
点赞 0
评论 0
@Test
public void flattenSimpleSample() {
ImmutableList<ImmutableMap<String, Integer>> result = Multimaps.flatten(ImmutableMultimap.<String, Integer>builder()
.putAll("a", 1)
.putAll("b", 2)
.build());
assertEquals(1,result.size());
assertEquals("[{a=1, b=2}]",result.toString());
}