一对一免费咨询: 13913005726 025-66045668

如何快速正确分词,对于SEO来说,是提取tags聚合,信息关联的好帮手。

目前很多分词工具都是基于一元的分词法,需要词库来辅助。

通过对Google黑板报第一章的学习,如何利用统计模型进行分词。

本方法考虑了3个维度:

凝聚程度:两个字连续出现的概率并不是各自独立的程度。例如上出现的概率是1×10^-5,床出现的概率是1×10^-10,如果这两个字的凝聚程度低,则上床出现的概率应该和1×10^-15接近,但是事实上上床出现的概率在1×10^-11次方,远高于各自独立概率之积。所以我们可以认为上床是一个词。

左邻字聚合熵:分出的词左边一个字的信息量,比如巴掌,基本只能用于打巴掌,一巴掌,拍巴掌,反之过去这个词,前面可以用走过去,跑过去,爬过去,打过去,混过去,睡过去,死过去,飞过去等等,信息熵就非常高。

右邻字聚合熵:分出的词右边一个词的信息量,同上。

下面是一个利用Python实现的demo(转自:http://www.webinfoextract.com/forum.php?mod=viewthread&tid=20)

#!/bin/sh

python ./splitstr.py substr.freq

python ./cntfreq.py word.freq

python ./findwords.py 白城网站建设公司 result

sort -t" " -r -n -k 2 result result.sort

splitstr.py,切分出字数在10以内的子字符串,计算词频,左邻字集合熵,右邻字集合熵,并输出出现10次以上的子字符串:

import math

def compute_entropy(word_list):
wdict={}
tot_cnt=0
for w in word_list:
if w not in wdict:
wdict[w] = 0
wdict[w] += 1
tot_cnt+=1
ent=0.0
for k,v in wdict.items():
p=1.0*v/tot_cnt
ent -= p * math.log(p)
return ent

def count_substr_freq():
fp = open("./video.corpus")
str_freq={}
str_left_word={}
str_right_word={}
tot_cnt=0
for line in fp:
line=line.strip('\n')
st = line.decode('utf-8')
l=len(st)
for i in range(l):
for j in range(i+1,l):
if j - i 0:
left_word=st[i-1]
else:
left_word='^'
if j l-1: right_word=st[j+1] else: right_word='%' str_left_word[w].append(left_word) str_right_word[w].append(right_word) tot_cnt+=1 for k,v in str_freq.items(): if v = 10:
鄂尔多斯网站建设公司 left_ent=compute_entropy(str_left_word[k])
right_ent=compute_entropy(str_right_word[k])
print "%s\t%f\t%f\t%f"%(k,v*1.0/tot_cnt,left_ent,right_ent)

if __name__ == "__main__":
count_substr_freq()

cntfreq.sh,统计每个字的字频:

def count_freq():
word_freq={}
fp = open("./substr.freq")
tot_cnt=0.0
for line in fp:
line=line.split('\t')
if len(line) 2:
continue
st = line[0].decode('utf-8')
freq = float(line[1])
for w in st:
if w not in word_freq:
word_freq[w]=0.0
word_freq[w]+=freq
tot_cnt+=freq
while True:
try:
x,y = word_freq.popitem()
if x:
freq=y*1.0/tot_cnt
print "%s\t%f"%(x.encode('utf-8'),freq)
else:
break
except:
break

if __name__ == "__main__":
count_freq()

findwords.py,输出凝合程度高,且左右邻字集合熵都较高的字符串:

def load_dict(filename):
dict={}
fp=open(filename)
for line in fp:
line=line.strip('\n')
item=line.split('\t')
if len(item) == 2:
dict[item[0]] = float(item[1])
return dict

def compute_prob(str,dict):
p=1.0
for 网站制作公司 w in str:
w = w.encode('utf-8')
if w in dict:
p *= dict[w]
return p

def is_ascii(s):
return all(ord(c) 128 for c in s)

def find_compact_substr(dict):
fp = open("./substr.freq")
str_freq={}
for line in fp:
line = line.decode('utf-8')
items = line.split('\t')
if len(items) 4:
continue
substr = items[0]
freq = float(items[1])
left_ent = float(items[2])
right_ent = float(items[3])
p=compute_prob(substr,dict)
freq_ratio=freq/p
if freq_ratio 5.0 and left_ent 2.5 and right_ent 2.5 and len(substr) = 2 and not is_ascii(substr):
print "%s\t%f"%(substr.encode('utf-8'),freq)

if __name__ == "__main__":
dict=load_dict('./word.freq')
find_compact_substr(dict)

对3万条视频的标题,抽出的频率最高的50个词如下:

50视频 0.000237

轴承 0.000184

北京 0.000150

中国 0.000134

高清 0.000109

搞笑 0.000101

新闻 0.000100

上海 0.000100

美女 0.000092

演唱 0.000085

音乐 0.000082

0.000082

第二 0.000080

少女 0.000078

最新 0.000074

广场 0.000070

世界 0.000070

现场 0.000066

娱乐 0.000066

大学 0.000064

公司 0.000064

舞蹈 0.000063

电视 0.000063

教学 0.000060

我们 0.000060

国语 0.000059

经典 0.000056

字幕 0.000055

宣传 0.000053

钢管 0.000051

游戏 0.000050

电影 0.000049

演唱会 0.000046

日本 0.000045

小学 0.000045

快乐 0.000044

超级 0.000043

第三 0.000042

宝宝 0.000042

学生 0.000042

广告 0.000041

培训 0.000041

视频 0.000040

美国 0.000040

爱情 0.000039

老师 0.000038

动画 0.000038

教程 0.000037

广州 0.000037

学院 0.000035

文章来源:http://www.imyexi.com/?p=682


 


 南京牧狼文化传媒有限公司简介:


      牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!


  公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!


  为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!


  主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等


  合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯


  资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。



致力于为客户创造更多价值
13913005726 025-66045668
需求提交
电话咨询
在线咨询