如何统计书签里面的高频词汇,帮我们回顾以前的收藏文章

Tags

需求场景

当我们的书签列表里面躺了几万个书签的时候,估计我们都懒得再打开去看了,有些书签文章可能就一直沉底下去了。
这里分享一个方法:关键词阅读法,就是我们可以做书签标题的词频统计,然后抽取高频词汇,在书签列表中搜出相关的文章,然后针对这一关键词做一个主题阅读。
通过这种方式,帮我回顾了很多以前收藏的好文章,本来我都忘记了那些文章了的。强烈建议大家也可以试试,让整理分类不再是负担,让Read Later不再是Read Never。

python脚本

思路其实很简单,就是:
  1. 先导出所有书签的html文件,
  1. 然后通过正则匹配获取到标题列表
  1. 然后用分词工具对标题列表进行分词即可。
import re,jieba
from collections import Counter

html_path="/Users/yutianran/Downloads/cubox_export.html"

# 黑名单,一些虚词,不想看, TODO 整理出一份黑名单文件,直接在列表里面写太low了
black_list=["一个","自己","我们","如何","可以","这个","不是","需要","时候","如果",
            "开始","mp4","com","https","http","可能","但是","很多","还是","现在",
            "感觉","一种","以后","其实","因为","今天","这样","他们","觉得","为什么",
           "知道","重要","不要","这些","怎么","应该","一些","一下","那么","这种",
            "东西","所以","通过","只是","然后","事情","一样","不能","进行","还有",
            "一点","而是","已经","或者","主要","那些","为了","成为","zsxq","真的",
            "哪些","必须","里面","的话","一直","不同","执行","之后","有点","起来",
            "真正","就是","什么","没有","使用","不过"]

#输出字符串到文件
def write_file(path,content):
    with open(path, "w") as f:
        f.write(content)
    print("文件已经输出:"+path)

# 读取文件
def read_file(path):
    str=""
    with open(path, 'r') as f:
        str=f.read()
    print(f"读取文件成功:{path}")
    return str

# 统计词频
def get_words(txt):
    seg_list = jieba.cut(txt)
    c = Counter()
    result=""
    for x in seg_list:
        if len(x)>1 and x != '\r\n':
            c[x] += 1
    print('常用词频度统计结果')
    for (k,v) in c.most_common(100000):
        # 过滤数字
        if k.isdigit():
            continue
        # 过滤黑名单里面的词语
        if k in black_list:
            continue
        # level='*'*int(v/100)
        # result=result+f'%s%s %s  %d\n' % ('  '*(5-len(k)), k, '*'*int(v/100), v))
        result=result+f"{k} {v}\n"
    return result

# 通过正则,读取html书签中的所有链接的标题
def convert_title(txt):
    pattern = re.compile("<A HREF=.*>(.*)</A>")
    title_list=pattern.findall(txt)
    return "\n".join(title_list)

txt = read_file(html_path)
title_list=convert_title(txt)
result=get_words(title_list)
write_file("/Users/yutianran/MyPKM/MyObsidian/MyScript/gen_wordcount.txt",result)

生成的词频的效果如下

仅截取部分,原始输出有24000多行。本来想弄成词云形式的,但是发现词云虽然直观,但是不利于大量的文字显示,还是直接纯文本最方便。
Android 2944
博客 1093
知乎 855
开发 678
CSDN 647
学习 596
掘金 595
笔记 592
中国 570
实现 523
程序员 523
工具 499
Java 499
简书 428
原创 426
管理 407
技术 398
时间 381
工作 360
方法 357
微信 356
代码 352
应用 342
推荐 334
少数派 325
框架 325
生活 311
知识 307
怎样 302
基金 293
专栏 290
问题 283
编程 280
开源 275
博客园 274
分析 270
技巧 267
android 267
高效 261
项目 258
阅读 253
解析 230
App 227
简单 226
插件 224
源码 224
分享 222
思维 217
软件 214
关于 213
自定义 213
产品 209
消息 208
实践 207
在线 204
Flutter 204
总结 203
印象 201
图片 199
优化 198
到底 195
快速 194
模式 194
看待 192
架构 192
读书 190
系统 185
Mac 185
教程 184
文章 181
理解 181
人生 180
体验 179
习惯 179
原理 173
详解 173
数据 171
方式 171
APP 170
设计 170
评价 169
腾讯 168
值得 166
手机 166
喜欢 165
个人 163
指南 159
程序 157
入门 156
整理 155
解决 154
面试 153
安卓 152
提高 150
文件 149
世界 148
功能 147
推酷 146
系列 145
以下省略24000行,强烈建议用VSCode这个文本编辑器来打开生成的词频文件。

关键词阅读法

比如我对其中的高频词汇“管理”,突然有了点兴趣,于是打开Cubox一搜,就可以看看相关文章了,如果觉得这个关键词很重要的话,我甚至还可以给它专门建立一个智能列表,以后只要标题或正文有这个词的,都会自动添加到智能列表里面。
notion image
其实关键词阅读法,不只是适用于书签的标题,还可以用网页标注、个人笔记使用。借助Obsidian这个双链笔记工具,我们甚至可以直接给这个关键词添加一个MOC的内容索引,将搜索结果固化下来。

推荐的两个工具

其实这个统计关键词+搜索的阅读方式,配合Diigo网页标注和WorkFlowy大纲笔记来用,效果更佳。
  1. 在进行网页阅读时,随手用Diigo做一些高亮的标注,然后一键copy all到WorkFlowy里面。(本步骤同样可以用脚本来生成)
  1. 在WorkFlowy的搜索结果里面,它可以直接将所有含有关键词的高亮都显示出来,直接一屏浏览,体验无比流畅。不像其它工具的搜索结果,只是显示到文章级别,而不是行的级别。
  1. 要是对高亮的上下文感兴趣了,点击所在的文章的链接跳回去阅读就是了。
不过这两个工具都是付费的,而且价格不菲。替代的方案也有,只是体验没有这两个的组合那么丝滑就是了:
  • Diigo替代品:Hypothesis,主要是没有一键copy all,不过它有API,可以使用脚本导出。
  • WorkFlowy替代品:幕布,主要是它并非所有节点都在一个根节点,如果非要在一个文档里面插入所有的网页标注的话,会有点卡顿,没有WorkFlowy的流畅感。
notion image

© fishyer 2022