Calculate score based on occurrence of words in Long text answer type

More
7 months 3 weeks ago #216576 by plafeber
Hello,
(Sorry if this question is already handled somewhere, I could not find it). Could it be possible already to assign points to users when validating Long text answers based on the occurrence of certain words in the answer? That could lead to the possibility to create assessments based on more than just multiple choice answers.

For example, we want to know whether the user knows the translation of "I am" into French. We can do that in a multiple choice question as such;
  • "Je suis" (1 point)
  • "J'ai" (0 points)
  • "Tu est" (0 points)
  • "Je être" (0 points)
However, this enables guessing. Instead, a Long text answer would be the way to go. Let the user enter the answer and if "Je suis" is the answer or is part of the answer with some (incorrect) additions before or after, we could give the user a point.

The same could be done for a question "Why do people get so enthralled watching the Mona Lisa?" where we check for an answer that contains words describing how the eyes seem to stare directly at you, and so create assessments about knowledge of a topic.

I would like it if more assessment options would be available, for instance for sorting questions. If this can be done by calculating points based on the resulting order, which could then lead to a tally of the total number of points scored, that would be great. Have people been able to do so with coding already? Or is this something I really have to wait for until new features are created around assessments?

Please Log in to join the conversation.

More
7 months 3 weeks ago #216595 by holch
To be honest, Assessments is depricated. I might use the assessment value if it fits, but I would do the calculations always via expression manager.

With Expressions you can already do what you are looking for. Just write an expression that checks if the student has written "Je suis", if yes, add the point, if not, don't add it.

So far so good. Now to your second point:

where we check for an answer that contains words describing how the eyes seem to stare directly at you, and so create assessments about knowledge of a topic.

How do you want to do that? Which words? You can describe Mona Lisa with a variaty of words and all could be fine or all could be wrong. I don't think that real open answers (not like with a specific word / expression) is not possible.

I have seen people trying to do this with AI, but to be honest, most what I have seen has worked in parts and failed misserably in others. Language is a difficult thing. And I don't think that this is something for Limesurvey, which is primarily a data collection tool. You are not only looking at analysis here, but rather artificial inteligence, which is a different beast.

Sorting orders: Same thing as for the language. But it will become complicated, depending on the "rules" you apply.

I think assessments are made for very simple things, you want to assess really complicated things that need very clear and specific definitions. I think this will never be implemented in Limesurvey.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
The following user(s) said Thank You: plafeber

Please Log in to join the conversation.

More
7 months 3 weeks ago #216599 by holch

The same could be done for a question "Why do people get so enthralled watching the Mona Lisa?" where we check for an answer that contains words describing how the eyes seem to stare directly at you, and so create assessments about knowledge of a topic.


Just an example:

"Mona Lisa is so special because her eyes stare directly at you"

"Mona Lista is so special because she has a crazy stare, she is a total nutcase"

"I don't get it either why people stare at here so much."

Which one would get the point? And why?

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

More
7 months 3 weeks ago #216606 by DenisChenu
"Je suis" (1 point) :

{sum(
if(MyTest == "Je suis",1,0),
if(MyTest == "je suis",0.5,0)
)}

You can play with strpos + str_replace (to remove space) + strtolower etc …
manual.limesurvey.org/Expression_Manager#Access_to_Functions

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development . I don't answer to private message.
The following user(s) said Thank You: plafeber

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now