Использование обработки естественного языка для разделения плохих и хороших комментариев из опроса сотрудников - PullRequest
0 голосов
/ 28 августа 2018

Так что это немного, и я прошу прощения за отсутствие информации. Тем не менее, я изо всех сил пытаюсь даже знать, где искать сейчас.

Таким образом, я пытаюсь разделить хорошие и плохие комментарии от вычурного опроса сотрудников случайной компании. Все, что у меня есть, - это датафрейм, состоящий из комментариев, сделанных сотрудником, и идентификационного кода их менеджера. Идея состоит в том, чтобы попытаться увидеть, сколько хороших и / или плохих комментариев связано с менеджером через его идентификатор.

import pandas as pd 
trial_text=pd.read_csv("trial.csv")
trial_text.head()

   ManagerCode              Comment
0        AB123  Great place to work
1        AB123  Need more training
2        AB123  Hate working here
3        AB124  Always late home
4        AB124  Manager never listens

Я довольно часто использовал NLTK для наборов данных, которые содержат гораздо больше информации, поэтому все, что основано на NLTK, не будет проблемой. Как я уже сказал, с тем, что у меня есть, «Google» имеет слишком много информации, которую я не знаю, с чего начать (или это полезно)! Если есть кто-то, у кого может быть предложение, которое может поставить меня на путь, это было бы здорово!

Спасибо

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Если у вас меньший набор данных, вы можете выполнить анализ настроений с помощью логистической регрессии, поскольку это проблема классификации. Подобный пример можно найти здесь: Анализ настроений с использованием логистической регрессии

0 голосов
/ 28 августа 2018

Как насчет textblob? Пример:

from textblob import TextBlob
TextBlob('this sounds pretty good!').sentiment

Выход:

Sentiment(polarity=0.5625, subjectivity=0.8)
0 голосов
/ 28 августа 2018

Вам нужен анализ настроений. Я не думаю, что вы получите удивительные результаты с готовой моделью, потому что ваши ответы довольно короткие и весьма специфичные для конкретной области. Если вы все равно хотите попробовать, вот пример использования модели vader с nltk:

from nltk.sentiment.vader import SentimentIntensityAnalyzer
sid = SentimentIntensityAnalyzer()
sid.polarity_scores('Great place to work')
>>> {'neg': 0.0, 'neu': 0.423, 'pos': 0.577, 'compound': 0.6249}
sid.polarity_scores('Manager never listens')
>>> {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

Как видите, ваш пробег может отличаться.

Если у вас много откликов (тысяч), более жизнеспособной стратегией было бы вручную пометить образец, например, от нескольких десятков до нескольких сотен и тренировать свой собственный классификатор настроений. Вот несколько хороших уроков о том, как сделать это с nltk или sklearn

...