python写代码没思路_一种用python实现的自动重写文章标题的思路与代码实现
好几周没更新了,今天来给大家分享一个标题重写的小思路以及代码实现。
相信大家可能都用过5118的自动文章标题的功能,就是给一篇内容,然后直接帮你写个标题。这个功能我是去年的时候一个学员给我看的,目前是不是很完善了不是很清楚。当时它的思路就是直接从文章里面取出一句相关的话作为文章的新标题,当然了,它有好几句话可以供选择的。我们今天也来用python实现一个类似功能的小脚本。一起来玩玩吧。
先说下脚本的实现思路
获取原来的标题,并计算出标题的字数。
获取文章的文本内容,并根据中文句子的结束标点进行拆分
设置一个新标题的临界值,这里我给到的是原标题的0.5-2倍
筛选内容拆分出来的句子,只要字数符合新标题临界值的都拿出来
分别计算符合要求句子和原标题的集合相似度。
根据相似度的高低进行排序,拿出相似度最高的作为新标题即可
效果如下
这里还有一些不是很完善的地方哈,因为时间关系就没有做。 比如:应该要去除掉开头一些无意义的词语等
下面给出响应的代码,感兴趣的童鞋可以尝试玩玩,毕竟也不花钱。
代码
# coding: utf-8
"""
重写文章标题新方式
计算原标题与内容句子的相似度,取相似度最大的作为新标题
作者:brooks
"""
import re
import jieba
sep = re.compile(r'[;。?!…():\s]')
def calculate_similar(wset, wset_len, title):
tset = set(jieba.lcut_for_search(title))
try:
similar = 1 - len(wset - tset) / wset_len
except ZeroDivisionError:
similar = 1.0
return similar
def make_new_title(title, content, rmstop):
title_len = len(title)
title_cut = set(jieba.lcut_for_search(title))
max_title_len = title_len * 2
min_title_len = title_len * 0.5
sentences = sep.split(content)
candi_senes = [sen.strip() for sen in sentences if min_title_len < len(sen.strip()) < max_title_len]
good_titles = []
for candi_sen in candi_senes:
similar = calculate_similar(title_cut, title_len, candi_sen)
new_title = rmstop.sub('', candi_sen)
good_titles.append((candi_sen, new_title, similar))
good_titles.sort(key=lambda x: x[-1], reverse=True)
print(good_titles)
def test():
# 停止词,本来想着去除掉句子中的停止词的,但是发现效果并不好,可读性很差
res = r'|'.join(w.strip() for w in open("stopwords.txt", encoding="utf-8") if w.strip())
stop_words = re.compile(res)
# test.txt 是测试的内容,纯文本。
with open('test.txt', encoding='utf-8') as f:
content = f.read()
# 原标题
title = "场均净胜43.8分!史上最残暴的球队到底多恐怖?"
make_new_title(title, content, stop_words)
if __name__ == '__main__':
test()
结束
这个本来就是做着玩的,为啥要做这个呢,因为很多的文章如果不是根据关键词采集的,那么很难用现有的方法给它重写标题,因此想着用一种简单快速的方式进行重写。
这类文章的主要作用就是促进内容的收录,培养 权重所用。一般这种文章没有什么特定的关键词,比如散文这类型的文章,大部分情况下很难用一个关键词来优化一篇散文。都是多篇聚合为一个主题来优化。原因在于散文作者起的名字也太那个啥了。
与此类似的还有一些心灵鸡汤啊,早安晚安心语啊什么的。这类型的文章一般原创度很高,因此用来养站养收录还是很不错的哦。
之前闯哥的公众号文章也分享过几个思路。大家也可以移步到闯哥的公众号学习。
都到这里了,就关注点个在看呗!
python写代码没思路_一种用python实现的自动重写文章标题的思路与代码实现相关推荐
- python词云改颜色_一种用Python生成词云
一种用Python生成词云 我们在阅读一篇很长的文章时,总先看看文章的关键词来获知文章的大概内容.今天我们就来制作一个词云程序,将文章中出现次数较多的词语提取出来,生成一张词云图. 词云图的生成原理: ...
- python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程
本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...
- python登录系统账号检测_一种基于python的惠普打印机默认用户名密码检测方法与流程...
本发明涉及打印机检测技术领域,特别是一种基于python的惠普打印机默认用户名密码检测方法. 背景技术: 网络打印机是当前各大中小型企业正常办公比不可少的办公网络设备,但对于大中型企业而言,不同部门或 ...
- python批处理栅格转点_三种利用Python批量处理地理数据的方法——以栅格数据投影转换为例...
时至今日,笔者已经总结了三种用Python语言结合ArcGIS10.2提供的接口去批量处理地理数据的方法.即: 1. 用IDLE.Python Tools for Visual Studio等去编写独 ...
- python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程
本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...
- 用python写生日祝福的教程_祝豌豆生日快乐 - Python猫的个人空间 - OSCHINA - 中文开源技术交流社区...
不算不知道,一算吓一跳:近三个月,豌豆已经读完心理学相关的书 14 本,为此写了 12 篇文章,按每篇平均 4000 字算,已经累计 4.8 万字了. 这还没完,她还给某个篇均阅读量 2.5 万的电视 ...
- 如何用python写四则运算程序中_四则运算生成程序(python版)
四则运算题目生成-基于控制台 项目托管在码云:飞机票 需求分析 根据控制台提示信息,输入题目生成相关配置参数 题目生成数量 数字范围 式子中是否有分数 .... 程序支持 10000 题目生成 题目与 ...
- python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...
html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...
- python做作业没头绪_使用Python做作业
python做作业没头绪 Applying OpenCV and Tesseract to do your math-homework 应用OpenCV和Tesseract进行数学作业 The pos ...
最新文章
- 单片机练习-RC-5红外遥控器程序及简单制造DIY PC遥控器
- OPNFV董事邓辉:网络功能虚拟化开源平台OPNFV介绍
- c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎
- 跨平台 C/C++ memcached 客户端 memcacheclient 介绍
- 前后端分离模式下的权限设计方案
- 运行维护:UPS电源并列运行分析及维护应用
- mysql win7 sp1 常见问题_win7旗舰版安装不了mysql问题-------win7系统版本选择问题的一点探索...
- 清华大学计算机科学与技术在哪个楼,清华大学计算机科学与技术系宿舍
- Docker下安装Anaconda
- 嵌入式Linux内核,文件系统的制作
- 使用Dom4j的xPath解析xml文件------xpath语法
- 网吧系统快速设置工具
- 深度解析ElasticSearch的分布式架构原理
- ASP.NET公司企业网站源码
- python学生成绩管理程序设计总框图_学生成绩管理系统ER图+流程图+组织结构图-课程设计...
- NX/UG二次开发—建模—批量创建重复特征方案优化
- excel自动求和_excel自动求和你会吗?更改姓名自动算出总分,三个函数轻松搞定...
- K8S 污点和容忍度
- VB全局HOOK写游戏盗号木马
- [辩论]以成败轮英雄是可取的——正方一辩稿
热门文章
- vue单页面应用和多页面应用
- 百度人脸识别api使用BASE64传输图片一直报错222203
- python教程15-作业讲解、集合的使用、集合运算符的使用、eval和json的使用
- 腾讯的SQL on Storm,与Pike设计目标很相似
- Command ‘cnpm‘ not found解决方法
- no main manifest attribute, in ./XXX.jar,如何解决?
- 用matplotlib进行数据可视化并储存图片,附提高图片分辨率方法
- 如何选择适合自己企业的B2B2C商城系统?
- C++ STL advance()函数(深入了解,一文学会)
- Windchill二次开发-xconfmanager工具