口语文本的情感分析

Python 语音语言处理

Daniel Bourke

Machine Learning Engineer/YouTube Creator

安装情感分析库

$ pip install nltk
# 下载所需的 NLTK 包
import nltk
nltk.download("punkt")
nltk.download("vader_lexicon")
Python 语音语言处理

使用 VADER 进行情感分析

# 导入情感分析类
from nltk.sentiment.vader import SentimentIntensityAnalyzer

# 创建情感分析实例 sid = SentimentIntensityAnalyzer()
# 在负面文本上测试情感分析 print(sid.polarity_scores("This customer service is terrible."))
{'neg': 0.437, 'neu': 0.563, 'pos': 0.0, 'compound': -0.4767}
Python 语音语言处理

转写文本的情感分析

# 转写 call_3 的客户声道
call_3_channel_2_text = transcribe_audio("call_3_channel_2.wav")
print(call_3_channel_2_text)
"hey Dave is this any better do I order products are currently on July 1st and I haven't 
received the product a three-week step down this parable 6987 5"
# 对 call_3 的客户声道做情感分析
sid.polarity_scores(call_3_channel_2_text)
{'neg': 0.0, 'neu': 0.892, 'pos': 0.108, 'compound': 0.4404}
Python 语音语言处理

逐句分析

call_3_paid_api_text = "Okay. Yeah. Hi, Diane. This is paid on this call and obvi..."
# 导入句子分割器
from nltk.tokenize import sent_tokenize

# 对每句计算情感 for sentence in sent_tokenize(call_3_paid_api_text): print(sentence) print(sid.polarity_scores(sentence))
Python 语音语言处理

逐句分析

Okay.
{'neg': 0.0, 'neu': 0.0, 'pos': 1.0, 'compound': 0.2263}
Yeah.
{'neg': 0.0, 'neu': 0.0, 'pos': 1.0, 'compound': 0.296}
Hi, Diane.
{'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}
This is paid on this call and obviously the status of my orders at three weeks ago, 
and that service is terrible.
{'neg': 0.129, 'neu': 0.871, 'pos': 0.0, 'compound': -0.4767}
Is this any better?
{'neg': 0.0, 'neu': 0.508, 'pos': 0.492, 'compound': 0.4404}
Yes...
Python 语音语言处理

开始编码!

Python 语音语言处理

Preparing Video For Download...