中文情感识别 1

Posted howbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文情感识别 1相关的知识,希望对你有一定的参考价值。

中文情感识别 1

技术图片

学习资料

  • Keras 快速上手:基于 Python 的深度学习实战 / 谢梁,鲁颖,劳虹岚著.—北京:电子工业出版社, 2017.8
  • Keras深度学习实战 作者:[意]安东尼奥·古利(Antonio Gulli),[印]苏伊特·帕尔(Sujit Pl)

熟悉keras环境

安装环境

安装cpu版本,没有难度
cpuk可以使用以下指令来加速代码运行

import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL‘] = ‘2‘

深度学习简介

文字数据处理

文字拆分

使用jieba中文分词
文档
https://www.oschina.net/p/jieba
https://blog.csdn.net/qq_34337272/article/details/79554772

建立索引

ont hot 编码


英文文本

""" 英文文本数据处理 """
import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL‘] = ‘2‘
import keras.preprocessing.text as text
import numpy as np
from keras.utils import to_categorical
txt = "Those that come through the Ivory Gate cheat us with empty promises that never see fulfillment. Those that come through the Gate of Horn inform the dreamer of the truth"
# %% 分词
out1 = text.text_to_word_sequence(txt)
# %% 建立索引
myset = set(out1)  # 利用set去重复
out2 = list(myset) 
out2.sort()      
mydict1 = dict(list(zip(np.arange(len(out1)),out2)))
mydict2 = dict(list(zip(out2,np.arange(len(out1)))))
"""
首先通过 zip 命令将每个单词依次与序号配对,然后通过 list 命令将配对的数据改为列表,每
个元素是诸如 (‘with‘, 0) 这样的一对,最后应用字典命令将列表修改为字典即可完成
索引。
"""
# %% ont hot 编码
word_num=list()
for word in out1:
    word_num.append(mydict2.get(str(word)))
# data 为txt的序列    
data = np.array(word_num)
#编码
encoded = to_categorical(data)
#解码
inverted = np.argmax(encoded[0])

中文文本
利用jieba分词,处理流程是一样的


import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL‘] = ‘2‘
import keras.preprocessing.text as text
import numpy as np
from keras.utils import to_categorical
import jieba
from pypinyin import lazy_pinyin

def pinyin_sort(lis):             #输入一个名字的列表
    """ 中文拼音排序 """
    result=[]
    for item in lis:
        result.append((lazy_pinyin(item),item))
    result.sort()
    for i in range(len(result)):
        result[i]=result[i][1]
    return result

chn = ‘此开卷第一回也。 作者自云: 因曾历过一番梦幻之后, 故将真事隐去, 而借"通灵"之说, 撰此《石头记》 一书也。 故曰"甄士隐"云云. 但书中所记何事何人? 自又云:“今风尘碌碌, 一事无成, 忽念及当日所有之女子, 一一细考较去, 觉其行止见识, 皆出于我之上. 何我堂堂须眉, 诚不若彼裙钗哉? 实愧则有余, 悔又无益之大无可如何之日也! 当此, 则自欲将已往所赖天恩祖德, 锦衣纨绔之时, 饫甘餍肥之日, 背父兄教育之恩, 负师友规谈之德, 以至今日一技无成, 半生潦倒之罪, 编述一集, 以告天下人: 我之罪固不免, 然闺阁中本自历历有人, 万不可因我之不肖, 自护己短, 一并使其泯灭也. 虽今日之茅椽蓬牖, 瓦灶绳床, 其晨夕风露, 阶柳庭花, 亦未有妨我之襟怀笔墨者. 虽我未学, 下笔无文, 又何妨用假语村言, 敷演出一段故事来, 亦可使闺阁昭传, 复可悦世之目, 破人愁闷, 不亦宜乎? 故曰"贾雨村"云云。 ‘
# %% 分词
out1 = jieba.lcut(chn, cut_all=False)
# %% 建立索引
myset = set(out1)  # 利用set去重复
out2 = list(myset) 
out2 = pinyin_sort(out2)  
mydict1 = dict(list(zip(np.arange(len(out1)),out2)))
mydict2 = dict(list(zip(out2,np.arange(len(out1)))))
"""
首先通过 zip 命令将每个单词依次与序号配对,然后通过 list 命令将配对的数据改为列表,每
个元素是诸如 (‘with‘, 0) 这样的一对,最后应用字典命令将列表修改为字典即可完成
索引。
"""
# %% ont hot 编码
word_num=list()
for word in out1:
    word_num.append(mydict2.get(str(word)))
# data 为txt的序列    
data = np.array(word_num)
#编码
encoded = to_categorical(data)
#解码
inverted = np.argmax(encoded[0])

keras入门

目前主要是初始keras
技术图片

以上是关于中文情感识别 1的主要内容,如果未能解决你的问题,请参考以下文章

NLPCC2013中文微博细粒度情感识别

VMPFC可以融合既有的片段信息来模拟出将来的情感场景

markdown 情感片段

语音情感识别中的 MFCC(梅尔频率系数的平均值对性能的影响)

情感识别基于神经网络的语音情感识别

基于Matlab神经网络语音情感识别系统