1
$\begingroup$

I have an NLP task. There is a text (telephone conversations). Voice is already converted into text and is divided into agent and customer paragraphs. I need to understand what approach is the best one for the next tasks:

  1. Who is the customer and who is the agent?
  2. Customer Name
  3. The topic of conversation
  4. Promises made by the operator to the customer (for example, "I call back tomorrow")
  5. Negative Sentiment (if there is something in the conversation that the subscriber is not happy with)

I am just trying to understand how to handle it. Is it possible to create some kind of general approach for this? If yes, for which packages/publications/books could I pay my attention?

$\endgroup$
1
  • 1
    $\begingroup$ Hi, welcome to Data Science SE! Those are very different questions, I guess. Please consider asking one question at a time in order to get accurate answers. $\endgroup$ Dec 18, 2019 at 22:59

1 Answer 1

1
$\begingroup$

Step by step.

Since you say its seperated into C-customer and A-agent I am going to assume its labeled (some of the questions could be solved unsupervised also)

  1. Who is the customer and who is the agent? Simple binary classification. Find suitable numerical model representation of text and perform classification. Starting reference

  2. Customer Name Named entity recognition - NER example how to use it:

import nltk

from nltk.tag.stanford import NERTagger

st = NERTagger('stanford-ner/all.3class.distsim.crf.ser.gz', 'stanford-ner/stanford-ner.jar')
text = "blablabla"

for sent in nltk.sent_tokenize(text):
    tokens = nltk.tokenize.word_tokenize(sent)
    tags = st.tag(tokens)
    for tag in tags:
        if tag[1]=='PERSON': print tag`
  1. The topic of conversation Start with these two approaches: LDA and LSA

  2. Promises made by the operator to the customer (for example, "I call back tomorrow") General approach (its plausible, needs a bit of work by you) But lets say you use word embeddings, all of the sentences that have promises will be vectors that are close to each other in this high-dimensional space. You can limit your system to return all sentences that fall into this cluster in the space.

  3. Negative Sentiment (if there is something in the conversation that the subscriber is not happy with) Simply just look at this introduction to Emotion AI Nutshell: You already have pre-trained models that can model positive-neutral-negative sentiment in the given text. Use the recources.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.