常听说,现在的代码,就和唐朝的诗一样重要。
可对我们来说,写几行代码没什么,但是,要让我们真正地去写一首唐诗,那可就头大了。。既然如此,为何不干脆用代码写一首唐诗?
准备:
- python3.6环境推荐使用anaconda管理python包,可以对于每个项目,创建环境,并在该环境下下载项目需要的包。推荐使用pycharm作为编译器。
GitHub代码:
theodore3131/TangshiGenerator
具体步骤:
使用爬虫爬取全唐诗,总共抓取了71000首。
#使用urllib3的内置函数构建爬虫的安全验证,来应对网站的反爬虫机制http = urllib3.PoolManager( cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())#爬虫的目标网站r = http.request('GET', url)#爬虫获取的html数据soup = BeautifulSoup(r.data, 'html.parser')content = soup.find('div', class_="contson")
使用正则表达式对爬取的数据进行处理
p1 = r"[一-龥]{5,7}[。|,]" #[汉字]{重复5-7次}[中文句号|中文逗号]pattern1 = re.compile(p1) #编译正则表达式result = pattern1.findall(poemfile) #搜索匹配的字符串,得到匹配列表
对诗词正文进行分词操作
#使用jieba中文分词库的textRank算法来找出各个词性的高频词for x in jieba.analyse.textrank(content, topK=600, allowPOS=('n', 'nr', 'ns', 'nt', 'nz', 'm')):
唐诗生成,处理韵脚
#使用pinyin库pip install pinyinverse = pinyin.get("天