0
votes

I have been trying to infer a timeliness score (a score based on patients' waiting times) from patients' reviews in hospitals. The data available is patients' reviews and their ratings of the overall experience. The problem is I don't have labels for the timeliness scores of the patients but a rating of the whole experience. reviews like 'I have waited for a very long time but the experience was worth it' which has a good context with a good rating should return a somewhat bad timeliness score, same thing for 'The wait was short but it does not justify the bad service'. So the context/ feeling of the person writing the review also matters. I've cleaned the reviews and took the part of the sentences that is relevant to the waiting time(if it exists) and used libraries like TextBlob or VaderSentiment to infer if the sentiment of the patient is positive or not. The problem with that is I had 20% of the cases where I got different results from different libraries and they do not always make the most sense (reviews that have long waiting times but within a good context return a good waiting time but it should at least be neutral ). I need some sort of way where I can correlate the context of the sentence and the actual rating to how much time they spent waiting and come up with a score, a sort of sentiment analysis that takes into account the whole sentence but looks for a specific context of talking about waiting time.

2

2 Answers

0
votes

You problem is called "aspect based sentiment analysis". I am not an expert for that but perhaps this blog can get you started - monkeylearn.com/blog/aspect-based-sentiment-analysis

0
votes

A helpful solution would be:

  1. Applying Semantic Role Labeling in the given corpus to find your highlighted features
  2. Using word embedding techniques like Word2Vec-SkipGram with negative sampling

    (Idea: the same words occur in the same contexts, so it doesn't need to recalculate the similarities.)

  3. Find the sentiment of a feature by surrounded words (window size).

    Note: Using Sentiment dictionaries like SentiWordNet might help you.

  4. Define a method to get the overall aspect-level (highlighted features) sentiment analysis.

    E.g. In binary classification:
    aggregation of pos/neg polarities divide to number of features in a sentence

  5. Train your model