ctakes-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pei Chen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CTAKES-251) Infinite recursion in DrugMentionAnnotator.java
Date Mon, 04 Nov 2013 19:54:18 GMT

     [ https://issues.apache.org/jira/browse/CTAKES-251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Pei Chen updated CTAKES-251:
----------------------------

    Fix Version/s: 3.1.1

> Infinite recursion in DrugMentionAnnotator.java
> -----------------------------------------------
>
>                 Key: CTAKES-251
>                 URL: https://issues.apache.org/jira/browse/CTAKES-251
>             Project: cTAKES
>          Issue Type: Bug
>          Components: ctakes-drug-ner
>    Affects Versions: 3.0-incubating, 3.1, 3.2, 3.1.1
>            Reporter: Bruce Tietjen
>            Priority: Critical
>             Fix For: 3.1.1
>
>
> Test document text (minimal text necessary to trigger the bug):
>                  aspirin decreased from 2:00 PM.
> NOTE: My testing indicates that the proposed fix should also fix example 1> in Jira
246.
> Call path:
>    generageDrugMentionsAndAnnotations
>       statusChangePhraseGenerator
> (infinite recursion starts here)
>          generateAdditionalNER
>             generateDrugMentionsAndAnnotations
>                statusChangePhraseGenerator
>                   generateAdditionalNER
>                      ...
> I believe the problem occurs in generateAdditionalNER() at ~line 2213 with getAdjustedWindowSpan()
returning -1.
> This causes the call to generateDrugMentionsAndAnnotations() to process the whole document
again rather than the remaining portion of the text.
> Source code snippet:
>         } else if (drugChangeStatus.getChangeStatus().compareTo(
>                 DrugChangeStatusToken.DECREASEFROM) == 0)
>         {
>             if (noPriorMention) {//Look for lowest value on right side
>                 beginChunk = getAdjustedWindowSpan(jcas,  beginChunk, endSpan, true)[0];
>             }
>             String [] changeStatusArray = new String [] {DrugChangeStatusToken.DECREASE,
new Integer (drugChangeStatus.getBegin()).toString(), new Integer(drugChangeStatus.getEnd()).toString()};
>             generateDrugMentionsAndAnnotations(jcas,
>                     buildNewNER, beginChunk, endSpan,
>                     tokenDrugNER, changeStatusArray, count, globalNER);
> A simple fix might be to add the two lines:
>             if (noPriorMention) {//Look for lowest value on right side
>                 beginChunk = getAdjustedWindowSpan(jcas,  beginChunk, endSpan, true)[0];
> -->                if (beginChunk == -1)
> -->                   beginChunk = drugChangeStatus.getEnd();
>             }
> Changing the logic inside getAdjustedWindowSpan() might be a more correct and complete
fix, but requires a much more detailed knowledge of the code.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message