package com.cse10.extractor.stanfordcorenlp.detector; import edu.stanford.nlp.ling.CoreLabel; import edu.stanford.nlp.ling.tokensregex.TokenSequenceMatcher; import edu.stanford.nlp.ling.tokensregex.TokenSequencePattern; import java.util.List; /** * Created by TharinduWijewardane on 2015-01-05. */ public class VictimDetector { private static TokenSequencePattern victimPattern = TokenSequencePattern.compile("([{tag:NNS}]{0,3} [{tag:NN}]{0,3} [{tag:NNP}]{0,3}) [{tag:VBD}]{1,2} (/killed|murdered|stabbed|raped/)"); private static TokenSequencePattern suicidePattern = TokenSequencePattern.compile("([{tag:NNS}]{0,3} [{tag:NN}]{0,3} [{tag:NNP}]{0,3}) /committed/ /suicide/"); public static String findVictim(List<CoreLabel> tokens) { String victim = ""; TokenSequenceMatcher victimMatcher = victimPattern.getMatcher(tokens); while (victimMatcher.find()) { victim = victimMatcher.group(1); System.out.println(" victim: " + victim); } if (victim.length() > 0) { return victim; } TokenSequenceMatcher suicideVictimMatcher = suicidePattern.getMatcher(tokens); while (suicideVictimMatcher.find()) { victim = suicideVictimMatcher.group(1); System.out.println(" victim: " + victim); } return victim; } }