You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by st...@apache.org on 2012/11/16 11:56:05 UTC
svn commit: r1410300 - in
/incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor:
ae/RelationExtractorAnnotator.java cr/GoldEntityAndRelationReader.java
knowtator/XMLReader.java
Author: stevenbethard
Date: Fri Nov 16 10:56:04 2012
New Revision: 1410300
URL: http://svn.apache.org/viewvc?rev=1410300&view=rev
Log:
Fixes bug in relation reader where arg1 was sometimes arg1 and sometimes arg2
Modified:
incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java
incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/cr/GoldEntityAndRelationReader.java
incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/knowtator/XMLReader.java
Modified: incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java?rev=1410300&r1=1410299&r2=1410300&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java (original)
+++ incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java Fri Nov 16 10:56:04 2012
@@ -346,43 +346,37 @@ public abstract class RelationExtractorA
*/
public static class HashableArguments {
- protected int arg1begin;
+ protected int arg1begin;
protected int arg1end;
protected int arg2begin;
protected int arg2end;
+ public HashableArguments(int arg1begin, int arg1end, int arg2begin, int arg2end) {
+ this.arg1begin = arg1begin;
+ this.arg1end = arg1end;
+ this.arg2begin = arg2begin;
+ this.arg2end = arg2end;
+ }
+
public HashableArguments(Annotation arg1, Annotation arg2) {
- arg1begin = arg1.getBegin();
- arg1end = arg1.getEnd();
- arg2begin = arg2.getBegin();
- arg2end = arg2.getEnd();
- this.init(arg1begin, arg1end, arg2begin, arg2end);
+ this(arg1.getBegin(), arg1.getEnd(), arg2.getBegin(), arg2.getEnd());
+ }
+
+ public HashableArguments(BinaryTextRelation relation) {
+ this(getArg1(relation), getArg2(relation));
}
-
- public HashableArguments(BinaryTextRelation relation) {
- Annotation arg1, arg2;
- String role = relation.getArg1().getRole();
- if (role == null || role.equals("Argument")) {
- arg1 = relation.getArg1().getArgument();
- arg2 = relation.getArg2().getArgument();
- } else {
- arg2 = relation.getArg1().getArgument();
- arg1 = relation.getArg2().getArgument();
- }
- this.init(arg1.getBegin(), arg1.getEnd(), arg2.getBegin(), arg2.getEnd());
- }
-
- public void init (
- int arg1begin,
- int arg1end,
- int arg2begin,
- int arg2end) {
- this.arg1begin = arg1begin;
- this.arg1end = arg1end;
- this.arg2begin = arg2begin;
- this.arg2end = arg2end;
- }
+ // HACK: arg1 is not always arg1 because of bugs in the reader
+ private static Annotation getArg1(BinaryTextRelation rel) {
+ RelationArgument arg1 = rel.getArg1();
+ return arg1.getRole().equals("Argument") ? arg1.getArgument() : rel.getArg2().getArgument();
+ }
+
+ // HACK: arg2 is not always arg2 because of bugs in the reader
+ private static Annotation getArg2(BinaryTextRelation rel) {
+ RelationArgument arg2 = rel.getArg2();
+ return arg2.getRole().equals("Related_to") ? arg2.getArgument() : rel.getArg1().getArgument();
+ }
@Override
public boolean equals(Object otherObject) {
Modified: incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/cr/GoldEntityAndRelationReader.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/cr/GoldEntityAndRelationReader.java?rev=1410300&r1=1410299&r2=1410300&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/cr/GoldEntityAndRelationReader.java (original)
+++ incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/cr/GoldEntityAndRelationReader.java Fri Nov 16 10:56:04 2012
@@ -247,13 +247,13 @@ public class GoldEntityAndRelationReader
RelationArgument relationArgument1 = new RelationArgument(jCas);
relationArgument1.setId(relationArgumentId++);
- relationArgument1.setArgument(modifier);
- relationArgument1.setRole(Constants.shareModifierRole);
+ relationArgument1.setArgument(entityMention);
+ relationArgument1.setRole(Constants.shareEntityMentionRole);
- RelationArgument relationArgument2 = new RelationArgument(jCas);
- relationArgument2.setId(relationArgumentId++);
- relationArgument2.setArgument(entityMention);
- relationArgument2.setRole(Constants.shareEntityMentionRole);
+ RelationArgument relationArgument2 = new RelationArgument(jCas);
+ relationArgument2.setId(relationArgumentId++);
+ relationArgument2.setArgument(modifier);
+ relationArgument2.setRole(Constants.shareModifierRole);
BinaryTextRelation binaryTextRelation = new BinaryTextRelation(jCas);
binaryTextRelation.setArg1(relationArgument1);
Modified: incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/knowtator/XMLReader.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/knowtator/XMLReader.java?rev=1410300&r1=1410299&r2=1410300&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/knowtator/XMLReader.java (original)
+++ incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/knowtator/XMLReader.java Fri Nov 16 10:56:04 2012
@@ -149,7 +149,13 @@ public class XMLReader {
String id2 = hashComplexSlotMentions.get(ids.get(1)).value; // obtain mention id2
String role2 = hashComplexSlotMentions.get(ids.get(1)).role; // e.g. Related_to
- relations.add(new RelationInfo(id1, id2, role1, role2, relationType));
+ if (role1.equals("Argument") && role2.equals("Related_to")) {
+ relations.add(new RelationInfo(id1, id2, role1, role2, relationType));
+ } else if (role2.equals("Argument") && role1.equals("Related_to")) {
+ relations.add(new RelationInfo(id2, id1, role2, role1, relationType));
+ } else {
+ throw new RuntimeException(String.format("Unexpected roles: %s %s", role1, role2));
+ }
}
/**