asyml / asyml/ForteHealth

Add support for context analysis - Status of a named entity

Open
#9 4 comments 0 reactions 0 assignees View on GitHub
new component
Dominant language
Python
Stars
14
Forks
5
PR merge metrics
No merged PRs in 30d

Description

****Is** your feature request related to a problem? Please describe.**
As part of our medical NLP pipeline, we have implemented one part of the context analysis module i.e. [NegationContextAnalyzer](https://github.com/asyml/forte-medical/blob/master/forte_medical/processors/negation_context_analyzer.py) which detects negation of named entities. Now, we need the other aspect of it, `StatusContextAnalyzer` which should work analogous to its CTakes [counterpart](https://github.com/apache/ctakes/blob/trunk/ctakes-ne-contexts/src/main/java/org/apache/ctakes/necontexts/status/StatusContextAnalyzer.java). This processor should get the status of every identified named entity in the input text

To begin with, status of a named entity could be one of these 3 probable values (with reference to [this](https://github.com/apache/ctakes/blob/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/fsm/output/StatusIndicator.java))
1. history_status
2. family_history_status
3. probable_status

image

**Describe the solution you'd like**
CTakes leverages FSMs (finite state machines) for exactly this problem. However, any reliable algorithm can be used for this purpose. You can go through this [PPT](https://drive.google.com/file/d/1ChcTZjVRbpQOPQtSiL2Al-LmC-psWfAY/view) for better understanding of the working of CTakes pipeline that we are trying to adopt and improve. You can further read up [here](https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+-+NE+Contexts) to gain more insights into the functionality of this processor.

[This](https://github.com/apache/ctakes/blob/trunk/ctakes-ne-contexts/src/test/java/org/apache/ctakes/necontexts/StatusAnnotatorTests.java) file can also be looked at to get more examples of what's expected from status context analysis.

Contributor guide

Open the contributing guide

Research direction

Start by reading forte_medical/processors/negation_context_analyzer.py to understand the existing context-analysis processor. Compare the requested behavior with the linked cTAKES StatusContextAnalyzer and StatusAnnotatorTests, including the three listed statuses. Done means the new processor determines a status for each identified named entity.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.