课题背景

这个题目启发于知名数学博客Matrix67上的一篇博文(互联网时代的社会语言学:基于SNS的文本数据挖掘),主要目的是从一大段文本中根据概率论原理提取有意义的汉语词汇

也参考了吴军博士《数学之美》中的一些类似章节

知识点

1. 正则表达式

2. Hash数据类型

3. 自然语言处理

要求及步骤

1. 读入一个文本,进行粗加工(剔除所有非汉字)

2. 统计文本中单字节汉字的出现概率(出现次数/文本字符数),使用Hash作为字典进行存储

3. 统计文本中双字节汉字的出现概率(出现次数/文本字符数),使用Hash作为词典进行存储

4. 统计双字节汉字的凝聚度,并排序及格式化输出

举例说明

“吃葡萄不吐葡萄皮”中,一共有8个汉字,其中:

1. “吃” “葡” “萄” “不” “吐” “葡” “萄” “皮”各算一个单字节汉字,“葡”和“萄”的出现概率都是2/8 = 0.25

2. “吃葡” “葡萄” “萄不” “不吐” “吐葡” “葡萄” “萄皮”各算一个双字节汉字,“葡萄”的出现概率是2/8 = 0.25

3. “葡萄”这个双字节汉字的凝聚度等于:“葡萄”的出现概率 除以 “葡”的出现概率 再除以 “萄”的出现概率

当一个文本样本很大的时候,将所有的双字节汉字的凝聚度排序,可以近似认为凝聚度越大,这个双字节汉字就越可能确实是一个有意义的汉语词汇

本题来源

https://github.com/chenkan/BlackQA/blob/master/codes/2013_03_11/chinese_word.rb

发表评论

电子邮件地址不会被公开。 必填项已用*标注