首先 fork 自己的仓库,然后 clone 到本地。
建议使用 VS Code 作为文本编辑器
诗歌数据按诗人分组存放在 /data 目录下,请先阅读数据格式文档 /data/README.md。
数据来源可以参考以下几种:
-
爬虫。以往使用过的爬虫脚本,如果有后续的使用价值,都提交在 /script/spider 目录下,可以参考参考。
-
结构化文件,txt,XML,HTML,EPUB,Doc 等。可以根据具体的文件类型写脚本解析。
-
图片或者扫描版 PDF,可以使用 OCR 工具解析,然后手动新增修改,推荐 WPS 的会员功能。当然你也可以放弃。
如果直接是批量解析出来的,直接使用脚本新增就可以了。本节主要展示只能使用,或者使用 Ctrl+C/V 手动新增更方便的场景。
- cd 到诗人的工作目录。以 海子 为例。
cd data/海子_haizi
- 复制脚本到当前工作目录
cp ../add.sh ./
cp ../task.py ./
# Windows
copy ../add.bat ./
copy ../task.py ./
- 新增诗歌文件
# 使用上述的 add 脚本
./add.sh [诗歌名] [创作时间,可省略]
# Windows
./add.bat [诗歌名] [创作时间,可省略]
- 打开文件,粘贴
VS Code 可以使用 Ctrl+左键 打开
如果是多首诗歌的 标题+内容,可以同时粘贴
- 创建一个缓存文件,比如说 test.pt
./add.sh test
- 将多首诗歌内容连标题一起粘贴进去
- 选择修改 task.py 文件里的这两行内容中的一行
# 参数:文件名, 子标题按顺序, 组诗前缀, 写作时间
split_by_titles('test', ['标题1', '标题2'...], prefix='', date='')
# 参数:文件名, 标题正则(按行匹配), 组诗前缀, 写作时间
split_by_regrex('test', r'^《(.*)》$', prefix='',date='')
- 运行 task.py 文件
python3 ./task.py
项目附带一个诗歌整理工具,源码在 /tool 下
需要 JDK8 以上,且已经安装 Maven
cd tool
mvn clean package
然后切换回根目录
cd ..
Windows 使用项目根目录下的 poem.bat,Linux 和 MacOS 调用项目根目录下的 poem.sh,参数相同 该小节统一使用 poem.sh
./poem.sh help
打印如下内容
All the instructions:
clean Format all the text files.
count Count the poets or poems, according to certain query criteria.
help Get the help info.
Use 'help [specific instructions, clean, count etc.]' to get specific help information for an instruction
查看具体指令的参数,以 count 为例
./poem.sh help count
打印如下内容
count:
[-a] Count all poetry files.
The following switches will be invalid if this one keeps on.
This switch turns off by default, but on if no other switches keep on.
[-d] Display details, default off.
[-s] Display briefs, default off.
Only [-s] is valid while turn on with [-d].
[[-[t][c]] WORD] Query conditions and their switches:
[t][c] Query coverage: [t]=title,[c]=content.
[t] is on, if none is on.
WORD Word in title/content.
e.g. count -d -tc moon
clean 指令会将 /data 目录下的所有诗歌数据格式化,包含以下项功能
- 删除多余的空行
- 全角符号,数字,字母替换为半角
- 会自动识别最后一行的写作时间,识别规则可以看该工具的 单元测试