一、构建语料库
- 确定数据源,并利用python爬取数据,注意清洗无效数据
- 建立标签系统,作为标注依据
本次采用的是BIO 标签系统:
B代表Begin,表示开始;
I代表Intermediate,表示中间;
O代表Other,表示其他,用于标记无关字符。
同时,采用E和A分别代表实体和属性,用户最为关注的属性用"A+?“来表示,例如位置就是"AL”。
为了随后的情感分析,还可将正面情感和负面情感划分为B-P和B-N。 - 标注
- 质量检查(reviews_check.py)
由于在标注过程中会出现格式上的错误,例如多了空格,多了斜杠/,或是没有标标签系统中的既定标签,不区分大小写等情况。因此,需要一个格式检查程序来进行检查。
这里的质量检查不包括内容,仅包括格式上的。
二、建立模型
-
语料预处理
-
生成词语、词性、标签三者的对应数据表
-
建立三类词典
-
word2vec创建词向量
-
词向量:通俗理解就是将词语转化成为机器可读的数据格式。
例如,“今天天气很好”这句话转化为词向量就分别为[1,0,0,0,0,0][0,1,0,0,0,0][0,0,1,0,0,0][0,0,0,1,0,0][0,0,0,0,1,0][0,0,0,0,0,1],这种编码被称为one-hot编码,又称为独热编码,即使用和文本等长的N位特征寄存器来存储样本,保证每个样本中的单个特征只有1位处于状态1,其他的都是0。
但是使用了one-hot编码会发现,一些样本量较大的词汇表是难以表示的,会非常占用内存。这个时候就出现了词向量,类似于空间向量。