学好python,改变人生!
最近看了央视旗下的玉渊潭天微博介绍了菲律宾control我们sina微博的视频,这是一个难得的python实战案例,至少有四五个python重要硬核方向值得研究,所以今天写一下这个相关的一些技术领域,点到为止,具体视频欢迎自行搜索“40万数据揭秘菲律宾社交机器人"相关视频。以下部分为视频截图,原始视频自行观看。
应用一:玉渊 收集对方原始信息,涉及到的可能的python库
https://github.com/JustAnotherArchivist/snscrape这是一个用于从社交媒体网站(包括Twitter、Instagram和Weibo等)抓取数据的Python库。它可以抓取公开的微博数据,无需API Key。其他的P虫相关库包括Requests、Beautiful Soup、Scrapy、Selenium、MechanicalSoup、PyQuery等,这里只是归纳一下,特殊团队手上都有很多自己开发未公开的库。
应用二:对收集的大量信息进行关键词抽取
对关键词进行词频统计,抽取等涉及到的就是自然语言处理了,这方面的库有NLTK、SpaCy、jieba分词、wordcloud词云、Gensim、Yake等等。
基于TF-IDF算法进行关键词抽取
• jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
o sentence 为待提取的文本
o topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
o withWeight 为是否一并返回关键词权重值,默认值为 False
o allowPOS 仅包括指定词性的词,默认值为空,即不筛选
• jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件
基于TextRank算法进行关键词抽取
• jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns’, 'n’, 'vn’, 'v’)) 直接使用,接口相同,注意默认过滤词性。
o sentence:待提取关键词的文本
o topK:返回关键词的数量,重要性从高到低排序
o withWeight:是否同时返回每个关键词的权重
o allowPOS:词性过滤,为空表示不过滤,若提供则仅返回符合词性要求的关键词,allowPOS('ns’, 'n’, 'vn’, 'v’) 地名、名词、动名词、动词
• jieba.analyse.TextRank() 新建自定义 TextRank 实例
应用三:对关键词信息进行可视化
python可视化工具之前我也介绍了不少,但是能生成关系型视图的可视化工具有Networkx、Neo4j、Pyecharts的Graph关系图等,效果最好的就是Neo4j的关系可视化图了。Neo4j的详细介绍我有时间一定会写一期的。以下为Neo4j的可视化效果展示
以下为玉渊潭天清晰后对数据进行的可视化展示
应用四:菲律宾的聊天机器人
类似的聊天robot也有很多,如sinaweibopy、weibo 0.2.2、itchat、WeChaty等,但是很容易被F,所以我也不太想去碰这些,很多库很快也就被封锁失效没有更新了,特殊团队肯定还有很多Sm工具的,这个自行研究不做交流。
https://wechaty.gitbook.io/wechaty/v/zh;https://github.com/wechaty/
当然还有一些网络安全相关的库,自动化填充信息的库,这里我先不介绍了,总之有想法的人可以用python构建起强大的应用。