目录
本笔记用于记录文本中的特征工程的可能的方法,以英文为例的,中文的话可能会包含在英文处理的方法之中。
一、文本特征
句子:The professor Colin proposed a model for NER in 1999
1.Bag_of_words
基于词袋模型的特征提取,不仅可以提取当前词的特征,还有前后词,再往前,再往后的词,以及语言模型特征。
①当前词:Colin
②前后词:professor proposed
③前前后后词:the, model
④bigram:professor Colin, Colin proposed, the professor, proposed model
⑤n-gram
2.词性特征
词性也同样可以考虑前后的一两个词的词性。
①当前词:名词
②前后词:名词,动词
③前前后后词:冠词,名词
3.前缀&后缀
英文中可以考虑这个,对于中文,可能没有前后缀。当然了,如果有人能根据偏旁部首或者拼音搞出来特征也是可以的。
①当前词:Co, in
②前后词:pr, or, pr, ed
③前前后后:th, he, pr, or, pr, ed, mo, el
4.当前词特性
当前词的特性就是这个词,它本身的属性,比如单词数量,大小写,符号,数字等。
①词长
②含有多少个大写字母
③是否大写开头
④是否包含“-”
⑤前面词是否包含大写
⑥是否包含数字
⑦是否包含“tomy”等等后缀
......
5.stemming
根据词根,对单词进行处理。如下面的例子(去除的字母是我瞎编的,实际要使用比如porter-stemmer来更方便地处理。)
①当前词:Coli
②前后词:professor propos
③前前后后词:th, mod
④bigram:profess Coli, Coli propos, th profess, propos mod
⑤n-gram
二、特征编码
常见的特征种类有categorical型,连续型,ordinal型
1.categorical型
也就是类别特征,对数据进行分类,例如:
男女==>(0,1)(1,0)
2. 连续型
连续型数据,身高,体重,气温这一类的数据,例如:
身高:183,184
温度:25.5
一方面这些数字可以直接作为特征使用(可能需要归一化),也可以对数据进行分箱,也就是离散化,比如身高155-160的分一类,然后再使用。
3.ordinal型
意思是排序型,数据可能有固有的排序标签,但不能区分差距具体有多大,例如:
根据得分,划分区间,对学生分数进行排序:ABCDE,可能90-100是A,80-89是B,在A和B之间,只是有一个顺序关系,具体的差别多少不知道。
这样排序的数据可以直接使用,也可以变成one-hot当做分类型特征。