PaddlePaddle中文文本分类实践

当我有个文本文件,里面的内容

窝沟封闭 , xx科室
牙龈肿痛, yy科室
……

那么我现在想做的是通过文本分类的model。得到我输入龋齿,告诉我应该到哪个科室的效果。

做的过程的如下:

第一步 分词做词典

我使用的方法是调用nlp.baidu.com上的词法分析接口。
分出来词之后,去重形成词典。

第二步 做好词表emb

根据上面的词典,调用词向量表示的接口,构造词表,但是过程中可能发现某些词调用的时候,获取不到向量。
建议的做法是分词的时候分的详细一点。

第三步 改model

paddlepaddle提供的文本分类的模型,要进行适当的修改,才可以接受自己定义的数据,词典和词表。
官网的model
这个model里面,写的是支持自定义的数据集。但是实际探索的过程中,总结一下更具体的用法。

待训练的数据

格式应该是

好评\t菜品 很 好,很 喜欢 吃,味道 鲜美,入口 就化
差评\t难吃 死了,有 苍蝇

这里要特别注意的就是分类和内容之间,一定是\t分隔的。
并且内容里面,要先分好词。当然如果是英文的训练数据,就不用先走分词这步了。
等待训练的数据,要放到一个路径中。

word_dict

word词典,model可以根据训练数据构建
词频大于5的。会被加到word_dict里,后面是词频。

lable_dict

lable词典,model也是可以自动构建的

注意词典也可以使用步骤一的分词结果自己构建出来。

要注意的是word_dict里面别忘记第一行加<UNK>

然后就可以输入命令,开始训练了

python train.py --train_data_dir=/home/work/sweetsky/model/text_classification/train_data/ --word_dict=/home/work/sweetsky/model/text_classification/word_dict --label_dict=/home/work/sweetsky/model/text_classification/lable_dict 

但是这个时候,会发现步骤二的词向量没有用到,并且如果训练数据量小的话,训练的效果并不好。那么自定义的词向量就登场了

第四步 model使用自定义的词向量

先写一个加载词向量的函数
def load_parameter(file_name, h, w):                                                                
    with open(file_name, 'rb') as f:                                                                
        f.read(16)  # skip header.                                                                  
    return np.fromfile(f, dtype=np.float32).reshape(h, w)
在创建参数的时候,把词向量加载进来

词向量的文件,是二进制保存的,行是每个词的向量。用行的index表示词的id

    # create parameters                                                                                
    parameters = paddle.parameters.create(cost)                                                        
    parameters.set('emb', load_parameter(文件名, 行数, 词向量的维度))
在定义网络的时候修改成
 # embedding layer                                                                                  
    emb_para = paddle.attr.Param(name='emb', initial_std=0., is_static=True)                           
    emb = paddle.layer.embedding(size=词向量维度, input=x, param_attr=emb_para)                          
    #emb = paddle.layer.embedding(input=data, size=emb_dim)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容