三国演义中谁的存在感最强+暴力计算圆周率

自然语言处理(NLP)是人工智能的一个重要领域。在对中文做自然语言处理的时候,一个很基础的操作就是分词:因为中文不像英语有现成的单词划分,需要将汉字序列切分成一个个单独的词,以便于后续的处理和分析。

今天我们的题目就是:

统计出《三国演义》书中被提及最多的角色

当然,精确统计是比较复杂的,比如同样是刘备,可以是刘备、玄德、刘豫州、刘皇叔、使君、先主、备,而同样的主公、丞相、将军这些称谓在不同语境下指的又是不同的人。这里我们就只粗略算个大概即可,统计哪些个名字出现次数最多。你可以尽量让结果更接近实际值。

这是我的结果,数值仅供参考。

为了方便大家,我已经准备好了《三国演义》的 txt 文件,UTF8 和 GBK 的版本都有,公众号里回复关键字三国

在知乎上逛一逛,你会发现现在很多人写的有关 Python 的文章都在用这个套路:

采集相关的文本

中文分词

统计词频

生成词云

所以,今天的附加题是开放式的,你可以在统计分词的基础上,发挥更多的想象力:图表可视化、生成词云、分析人物的关联性、人物出场分布等等。

详细解答和参考代码将在下次栏目中给出,也可以其他同学在留言中的代码。

期待各位同学提交解答。

codeshare.io等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

【解答】暴力计算圆周率

上次的题目,提示了两种方法:均匀点阵、蒙特卡洛方法。

这里有个细节要注意,如果过你用点阵的话,圆心位置的选取,会直接影响到结果的准确度。因为如果把圆心设在点上,距离 R 的范围内,直径上是有 2R + 1 个点;而设在点的间隔之间,直径则是 2R 个点。那么这时候,分母选择 R² 还是 (R+1)²,结果就不一样了。

一个简单的实现:

蒙特卡洛法 + 绘图:

上次提交答案的同学有:

hoshea、a87g5o、张钒、谢谢谢伟、Cool、王文亚、Famisi、星星

大部分同学都提供了2种不同解法,Cool和王文亚还实现了无穷级数法。

感谢各位同学的参与。

期待在下一期中看到你的代码!

回复关键字:

python:零基础入门课程目录

新手:初学者指南及常见问题

资源:超过500M学习资料网盘地址

项目:十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,请号内回复码上行动

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181107B0YFZ700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券