wiki语料使用

-- 处理处理

Posted by Jie on April 7, 2017

很久之前就下了wiki中文预料,当时就只做了word2vec。可以做做其他的。

wiki这么大个语料,先从文档相似度入手。给定一篇文档(新闻、报告…),能知道关键讲的什么,并能给出wiki中相关文章

预处理

首先是原始数据的处理,。

处理参见http://www.52nlp.cn/%E4%B8%AD%E8%8B%B1%E6%96%87%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91%E8%AF%AD%E6%96%99%E4%B8%8A%E7%9A%84word2vec%E5%AE%9E%E9%AA%8C/comment-page-1 做了点改动,在Python里面分词然后编码为utf8再写入。 在Mac上繁简转换也报错zht2zhs.ini not found or not accessible.,这里需要替换为-c t2s.json。

原文分了几部分,现在把繁简转换、编码、分词放在一起。

from gensim.corpora import WikiCorpus
import jieba
data = WikiCorpus(input_file, lemmatize=False, dictionary={})
output = open(output_file, "w")
def cut(str):
    return " ".join(jieba.cut(str))

def t2s(line):
    return opencc.convert(b"".join(line).decode("utf-8"), config='t2s.json')

for line in iter_data:
    title = opencc.convert(line[0].decode("utf-8"), config='t2s.json')
    output.write(title + " " + cut(t2s(line)) + "\n")

其次是停用词处理,这里就用idf筛选无效词。小于1的直接去掉。

看看全语料idf 最低10个

idf
外部 0.9452591183849574
0.9193400953235863
0.7146749405249633
0.40104916099974064
0.53836286894243
0.9470858426929526
0.8071514075471966
0.11320240832637747
0.39737973543304406
0.7625961050858583

LDA分析

使用Python的gensim跑LDA好慢,只用了一个CPU,不知道哪里没配对。

然后换Spark 机器学习包,参数默认,1000个主题。

先用CountVectorizerModel做词映射,然后再带入训练。

因为Spark的配置,要把单机集群打开,电脑跑的好有压力, task的shuffle数据都是5G左右,而且还报OOM。

只能稍微调整一下GC参数,内存调大,减小线程数。

再次运行

出现问题,使用online学习在初始化Gamma矩阵的时候OOM。

换个姿势再次运行

然后调整到em, 跑了半天然后报OOM,而且中间电脑还报磁盘不足,这货OOM的时候居然占用了接近100G的大小的磁盘。

看是警告

 WARN executor.Executor: 1 block locks were not released by TID = 257:

解决方法

https://github.com/apache/spark/pull/16513

恩,很好,warn配置就看不到这个日志了。

Spark需要重新编译一下在做优化。

todo

换回Python

1000个topic -> 跑了一天,被kill

800一样

500还是会被kill

300跑了24小时终于在默认参数下训练成功,接下来看看会出现怎样的效果。

['街晓丽', 0.16883524276409045], ['箕谷出入口', 0.044981322867586021], ['外掠', 0.043425382369214643], ['程郁', 0.028774685263776044], ['省任', 0.017550910601273804], ['张谦', 0.015162879821680651], ['沙特尔大教堂', 0.014366676056815682], ['七时许', 0.013898498684258647], ['赛柏', 0.013064417051134406], ['距守', 0.012563470338417518]]

['本线京', 0.091848252447655571], ['舍房', 0.052179806138415025], ['innocencedvd', 0.040138455318138873], ['海虎海虎', 0.022987491370894297], ['图安', 0.016916751048292468], ['beforethefall', 0.015540284156943928], ['knack', 0.015196176172706913], ['夏楚', 0.013777510037363919], ['藤田前', 0.013539043739846126], ['侯连海', 0.013537722693614876]]

['冲激响应', 0.050817908915583063], ['中用', 0.030291944174676098], ['赵伯符', 0.028189822972599945], ['贡镛', 0.027951312265465034], ['藤谷律子', 0.027408486954757779], ['zosteropslateralissilvereye', 0.022611700310877784], ['今船', 0.020082149024269857], ['汉川', 0.018645902540263774], ['wannafeatcostibobsinclarshaggyneblagodaren', 0.018175209773727292], ['h³m', 0.013444719683365629]]

看不懂,词云也不用做了。

热点词

todo

文档主题抽取

todo

相似文档筛选

todo