From 851720e91fc9e1c09e88e82a8f0442b44f421813 Mon Sep 17 00:00:00 2001
From: Franck Dary <franck.dary@lis-lab.fr>
Date: Mon, 16 Nov 2020 13:07:37 +0100
Subject: [PATCH] Parser entropy is only counted for a word being attached

---
 reading_machine/src/Transition.cpp | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/reading_machine/src/Transition.cpp b/reading_machine/src/Transition.cpp
index 879c074..dd83119 100644
--- a/reading_machine/src/Transition.cpp
+++ b/reading_machine/src/Transition.cpp
@@ -101,8 +101,19 @@ void Transition::apply(Config & config, float entropy)
 {
   if (config.hasColIndex("ENTROPY"))
   {
-    auto action = Action::sumToHypothesis("ENTROPY", config.getWordIndex(), entropy);
-    action.apply(config, action);
+    if (name.find("SHIFT") == std::string::npos and name.find("REDUCE") == std::string::npos)
+    {
+      if (name.find("LEFT") != std::string::npos)
+      {
+        auto action = Action::sumToHypothesis("ENTROPY", config.getStack(0), entropy);
+        action.apply(config, action);
+      }
+      else
+      {
+        auto action = Action::sumToHypothesis("ENTROPY", config.getWordIndex(), entropy);
+        action.apply(config, action);
+      }
+    }
   }
 
   apply(config);
-- 
GitLab