JD解析系列1 之word2vec 使用

JD解析,全程为job description。 随着信息技术的推进,大数据时代的到来,自动化匹配个人求职简历和企业招聘需求技术已经日渐成熟。主要包括jd解析,cv解析,总体上讲,可以分为jd-cv 匹配三大模块。

下面主要先进行jd解析系列 

直接步入正题。

详细步骤可参考:http://blog.csdn.net/jj12345jj198999/article/details/11069485

1. 数据预处理

编码转码

cat news_tensite_xml.dat | iconv -f gbk -t utf-8 -c | grep "<content>"  > corpus.txt 

 

利用jieba分词后利用google的强大工具word2vector 将文本转化为词向量。

#! /usr/bin/env python
#coding=utf-8
import jieba
import json
import codecs

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

f = codecs.open('../Trip_Inc/jd_100w.json','r',encoding='utf-8')
o = open('./train.txt','w')

id=1

for line in f:
    line =  json.loads(line)
    if line['job'].get('job_description',1)!=1:
        content = line['job']['job_description'].strip().\
        replace('\r',' ').replace('\n',' ').replace('\t',' ').replace('',' ').replace('
',' ').replace('',' ').replace('|',' ').replace('',' ').split()
        content = ' '.join(content)
        if id<=5:
            print content[:50]+"*"*20
            id+=1

        seg_list = jieba.cut(content)
        for item in seg_list:
            o.write(item.encode('utf-8')+' ')

2.  word2vec 使用

./word2vec -train resultbig.txt -output vectors_60.bin -cbow 0 -size 60 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1  

以上命令表示的是输入文件是train.txt,输出文件是vectors_60.bin,不使用cbow模型,默认为Skip-Gram模型。 每个单词的向量维度是60,训练的窗口大小为5就是考虑一个词前五个和后五个词语(实际代码中还有一个随机选窗口的过程,窗口大小<=5)。不使用NEG方法,使用HS方法。-sampe指的是采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。-binary为1指的是结果二进制存储,为0是普通存储(普通存储的时候是可以打开看到词语和对应的向量的)除了以上命令中的参数,word2vec还有几个参数对我们比较有用比如-alpha设置学习速率,默认的为0.025.–min-count设置最低频率,默认是5,如果一个词语在文档中出现的次数小于5,那么就会丢弃。-classes设置聚类个数,看了一下源码用的是k-means聚类的方法。

# PS> 聚类:聚为100类

./word2vec -train resultbig.txt -output classes.txt -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 100

排序输出

sort classes.txt -k 2 -n > classes.sorted.txt  

http://blog.csdn.net/zhoubl668/article/details/24314423

http://www.sogou.com/labs/resources.html?v=1

posted on 2015-07-23 21:37  星空守望者--jkmiao  阅读(570)  评论(0)    收藏  举报