Add support for context analysis - Status of a named entity
- 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

**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
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