Я хочу провести семантический анализ негативных высказываний. Во-вторых, я хочу, чтобы мы Snomed CT. Мне бы хотелось, чтобы какой-то указатель отвечал обеим целям.
Обратите внимание, что я новичок в НЛП. Я использую OpenIE для выполнения семантического анализа. Читая документацию, я знаю, что OpenIE не поддерживает негативные заявления, в противном случае он делает то, что я хочу. Может ли кто-нибудь указать мне на какой-нибудь код или проект, который выполняет семантический анализ отрицательных предложений и производит триплеты? Кажется, я не могу их найти.
Моя цель - получить объект, предикат, объект триплетов. Документы, которые я анализирую, являются отчетами о медицинских исследованиях. Другая проблема, характерная для медицинских отчетов, заключается в том, что они используют медицинские термины, такие как «металлопротеаза-12 (MMP-12)». В этих случаях приговор считается отрицательным из-за, я полагаю, черты в медицинском термине. У меня есть одна статья, в которой практически каждое предложение называется OpenIe отрицательным.
Аннотация
История вопроса: Целью нашего исследования было: (1) определить уровни матриксной металлопротеазы-12 (ММР-12) и тканевого ингибитора матриксной металлопротеазы
-12 (TIMP-3) у пациентов с артериальной гипертензией (АГ) и сердечной недостаточностью с фракцией выброса среднего уровня (HfmrEF) и (2) для сравнения их уровней
со здоровым контролем. Методы: было обследовано 56 пациентов с АГ и HfmrEF, средний возраст 65,62 ± 9,69 (1 группа); и здоровые предметы для контроля
(n = 12), средний возраст 56,4 ± 5,53 (группа 2). 41 пациент был с опосредованным гипертензией повреждением органов и 15 без. ИФА был использован для измерения
ММП-12 и ТИМП-3. Результаты: уровни ММР-12 в сыворотке были статистически значимо ниже у пациентов, чем в контрольной группе: 0,0033 (0,0022 ÷ 0,0071) по сравнению с
0,0075 (0,0068 ÷ 0,016) (KW = 7,37; p = 0,006). ММР-12 показал корреляцию с лечением с помощью АПФ (r = 0,48; р = 0,005) и ARB (r = -0,33; р = 0,05); BMI
(r = 0,33; р = 0,05), ММР-12 и степень АГ (r = 0,28; р = 0,03); ММР-12 и статин (r = -0,30; р = 0,02). Уровень ТИМП-3 у пациентов был ниже - 5,051 (2,062 ÷
10,463), чем у контрольных 6,460 (1,007 ÷ 12,520) (р <0,05), но незначительно. TIMP3 показал корреляцию с оценкой AH (r = 0,85; p = 0,02) и PLVW
(r = -0,40; р = 0,03). Выводы: наши результаты показывают корреляцию между сывороточными уровнями TIMP-3, MMP-12 и степенью артериальной гипертонии у пациентов с
HfmrEF. TIMP-3 и MMP-12 могут в конечном итоге использоваться в качестве маркеров для контроля AH. Мы предполагаем, что MMP-12 и TIMP-3 связаны с развитием
и прогрессирование опосредованного гипертензией повреждения органов. </p>
Я хочу провести семантический анализ негативных высказываний. Во-вторых, я хочу, чтобы мы Snomed CT. Обратите внимание, что я новичок в НЛП. Я использую OpenIE для выполнения семантического анализа. Читая документацию, я знаю, что OpenIE не поддерживает негативные заявления, в противном случае он делает то, что я хочу. Может ли кто-нибудь указать мне на какой-нибудь код или проект, который выполняет семантический анализ отрицательных предложений и производит триплеты? Кажется, я не могу их найти.
y цель - получить объект, предикат, объект триплетов. Документы, которые я анализирую, являются отчетами о медицинских исследованиях. Другая проблема, характерная для медицинских отчетов, заключается в том, что они используют медицинские термины, такие как «металлопротеаза-12 (MMP-12)». В этих случаях приговор считается отрицательным из-за, я полагаю, черты в медицинском термине. У меня есть одна статья, в которой практически каждое предложение называется OpenIe отрицательным.
The example -
Background: The aim of our study was to: (1) Determine levels of matrix metalloprotease-12 (MMP-12) and tissue inhibitor of matrix metalloprotease-12 (TIMP-3) in patients with arterial hypertension (AH) and heart failure with midrange ejection fraction (HfmrEF) and (2) to compare their levels with healthy controls. Methods: 56 patients with AH and HfmrEF were examined, mean age 65.62 ± 9.69 (Group 1); and healthy subjects for controls
(n=12), mean age 56.4 ± 5.53 (Group 2). 41 of patients were with hypertensive mediated organ damage and 15 were without. ELISA was used for measuring
MMP-12 and TIMP-3. Results: Serum MMP-12 levels were statistically significantly lower in patients, than in controls: 0.0033 (0.0022 ÷ 0.0071) vs.
0.0075 (0.0068 ÷ 0.016) (KW=7.37; p=0.006). ...
All the sentences above were given negative semantic results and thus no triplets, which I want to pass on to RDF and Jena. The second sentence was also deemed negative probably because of the word without.
This bring me to the second part of my question. I read that Snomed CT can be used with Stanford NLP. Could someone point my at documentation on how to do this, I'm using Java and Eclipse. Some of the pertinent code is incorporated in the next section
public void MapToNLP(Annotation doc) {
Map<String, Map<String, Map<String,String>>> outterMap =
new HashMap<String, Map<String, Map<String,String>>> ();
for (CoreMap sentence : doc.get(
CoreAnnotations.SentencesAnnotation.class)) {
int longest = 0;;
Tree tree = sentence.get(SentimentAnnotatedTree.class);
int sentiment =
RNNCoreAnnotations.getPredictedClass(tree);
String sentimstr =
CoreNLPProtos.Sentiment.forNumber(sentiment).
toString();
logger.debug("sentiment is: "+sentimstr);
String sent =
sentence.get(CoreAnnotations.TextAnnotation.class);
sentence.get(SemanticGraphCoreAnnotations.
EnhancedDependenciesAnnotation.class);
SemanticGraph dependencies = sentence.get(
SemanticGraphCoreAnnotations.
EnhancedDependenciesAnnotation.class);
String sentgph =
sentence.get(SemanticGraphCoreAnnotations.
EnhancedDependenciesAnnotation.class).
toString(SemanticGraph.OutputFormat.LIST);
String[] sentgphA = sentgph.split("\\n");
Collection<RelationTriple> triples = sentence.get(
NaturalLogicAnnotations.
RelationTriplesAnnotation.class);
Map<String, Map<String, String>>innerMap = null;
innerMap = new LinkedHashMap<String, Map<String,
String>>();
Map<String,String>innerinnerMap = null;
innerinnerMap = new LinkedHashMap<String,String>();
if(sentimstr.contains("NEGATIVE")){
logger.debug("Have to do somethng else:
"+sentence+"\n");
continue;
}
for (RelationTriple triple : triples) {
// triples note: Check on whether to use lemma
String sub = triple.subjectGloss();
String rel = triple.relationGloss();
String obj = triple.objectGloss();
String thetriple = triple.toString();
logger.debug("End of a sentence\n");
int ptlen = thetriple.length();
if (ptlen > longest) {
innerinnerMap.put("sentiment",sentimstr);
innerinnerMap.put("obj",obj);
longest = ptlen;
logger.debug("subject: "
+triple.subjectGloss());
logger.debug("relation: "+rel);
logger.debug("obj: "+obj);
logger.debug(thetriple);
logger.debug(sentence+" is longest");
}
}
if(!innerinnerMap.isEmpty()) {
innerMap.put(sent, innerinnerMap);
}
outterMap.put(sent, innerMap);
}
CreateRDF(outterMap);
}
Хотел бы получить анализ того, что определяется как отрицательные предложения с помощью семантического анализа. Однако отрицательные предложения возвращают пустые триплеты.