用实际案例来说明,笔记的标签结构如何自生长,标签结构对搜索的强大支持——关于笔记工具的思考(中篇)

2021-12-29 19:08:33 +08:00
 sillydaddy

前情提要

上一篇在这里: 笔记软件最重要的功能是搜索——关于笔记工具的思考

这篇的主题

上篇是这篇的理论基础,有点长篇大论。这篇则是以图为主,用真实而具体的例子,讲清楚「局部多标签」的笔记方法。

所举的例子,来自于我最近在 logseq 中所记的笔记,从中选取了一部分,以「日程笔记流水」的形式展示在这里,以产生一种笔记不断生长的效果。这里所说的生长,主要指附加在笔记上的「标签系统的生长」。

例子的主旨,是关于将心脏支架的价格从 1.3 万元降到 700 元的「心脏支架集中采购政策」。

后文有很多图,这里先放一张看下效果。

笔记的生长过程

第 1 天的笔记

心脏支架->心脏支架降价事件;
降价->心脏支架降价事件;
带量采购->心脏支架降价事件;

第 2 天的笔记

医疗回扣->医疗回扣案例;
医疗回扣案例->"心脏支架医疗回扣案例,回扣比例 10%";
心脏支架->"心脏支架医疗回扣案例,回扣比例 10%";

第 3 天的笔记

行政干预药品价格->长支架消失;
药品短缺->长支架消失;
药品->心脏支架->长支架消失->长支架消失的原因;

第 4 天的笔记

药物球囊->对心脏支架的集采导致药物球囊使用增加;
心脏支架->对心脏支架的集采导致药物球囊使用增加;
集采->对心脏支架的集采导致药物球囊使用增加;

第 N 天的笔记

整理笔记中的标签关联

支架->心脏支架;
药品->支架;
药品->药品短缺;
支架->长支架->长支架消失;
集采->带量采购;
药品->药品价格->行政干预药品价格->集采;
行政干预->行政干预药品价格;
回扣->医疗回扣;
药品->球囊->药物球囊;
降价->药品降价;
药品价格->药品降价;

基于标签结构的搜索

好了,标签关联起来了,标签结构已经有了,但有什么用呢?可以基于这种标签结构,优化搜索功能!搜索很重要, 这在上篇( /t/818822 )中已经提到。后面会看到,logseq 等软件提供很多重要功能,实质就是搜索。

一种搜索效果的示意图

给定某个搜索关键词,下面的例子展示了搜索的结果:标签与关键词的关联关系越近,标签颜色越暖;反之亦然。例 如红色标签与关键词关系最近,淡蓝色的最远。

对于搜索结果的这种展示方式,只是一个我想到的示例。应该有很多方法可以比它更加简洁。比如对于标签与被搜索标签的关系远近,可以使用多层同心圆的布局来表达,或者可以使用节点与字体的大小来表达等等。

但重要的是,这种展示方式,不仅可以「表达各标签与被搜索标签的关系远近」,而且可以「利用有层次的标签结构,并在不破坏这个结构的基础上,展示搜索结果」。那么这个「有层次的标签结构」到底代表什么?又为什么要充分利用呢?

充分利用标签的结构来搜索

观察上述的标签结构,它是有结构层次的。这种层次体现在,上层的标签要比下层的更精炼:要么上层标签是下层标签的抽象,要么上层标签是下层标签的子元素。比如,

所以从集合论角度看的话,上层标签代表的集合要比下层的大。这种上层涵盖下层的标签结构,可以在搜索时提供巨大的便利。

标签结构的进化

从「笔记生长的过程」一节可以知道,标签的结构是随着记笔记的过程不断生长的,不仅标签的规模越来越大,并且标签的结构也应该在不断完善。这里的「完善」,包含下面几点,

而如果标签结构本身具有结构的话,会反过来让标签结构的改进更容易。因为你可以利用这种结构,更快速找到诸如同义词、近义词、未关联的标签、未抽象的标签、未拆解的标签,等等。反之想象一下,如果所有的标签以平铺或列表的组织形式,你又怎么去改进这些标签呢?

具有结构的标签系统,为自我改进提供很大便利。那么改进所需的时间和精力成本,就可以分散在记笔记的过程中:当添加了新的标签,或建立了新的关联后,或搜索某个标签后,发现了标签结构中的某些地方需要改进,顺手就改掉了。不需要专门抽时间特意为之。而已经改善过的那些标签,大概率是可以稳定地沉淀下来,而只需对新进来的标签作调整。

与目前 logseq 的功能对照着看

上述的多层次的标签结构,以及建立在其上的搜索功能,在目前的双向链接笔记软件中,实现的程度最大,但也并不是完全实现了(毕竟只是我的一个构思)。这里以 logseq 软件为例,看看有哪些部分已经实现,还有哪些部分未支持。

logseq 支持块,天然支持局部多标签。

每个块都可以打多个标签。这些标签可以关联起来。参考上面「笔记的生长过程」中,标签是可以打在块上的。

不过在 logseq 中,打在同一块上的多个标签,并不是通过块本身关联起来的,二是通过笔记的标题关联起来的。这样,就无法实现本文中所述的标签结构。

logseq 支持对标签搜索。有点像上述基于标签的搜索。

如下图,以列表形式显示匹配关键字的标签。优先显示匹配的标签结果,然后才是匹配的 block 和全文。

不过,这种搜索是以列表的形式,并且精确匹配关键字,也没有利用标签本身的结构。

logseq 的图谱。不利于标签结构发挥应有的作用,有很多改进空间。

(图略)。图谱中只显示包含该关键词的节点。

总的来说,logseq 没有体现出标签的结构。

logseq 建立标签之间的关联的方法。可以在页面内打标签,方便程度还可以。

比如上图,在「长支架消失」页面中,打上「心脏支架」的标签,可以把 2 者关联起来。

logseq 的标签筛选功能。

例如在「心脏支架」这个页面下,可以用来筛选的反向链接(标签)有:

可以筛选「与某个 tag 关联的其他 tag 」,在我看来,这相当于「多标签搜索」功能。

总结

标签结构很重要

并不是只有多级标签,更重要的是网状的关联

观察上面「笔记生长过程」中所给出的例子,如下图,

可以看到,「心脏支架」、「降价」、「带量采购」这 3 个标签,应该可以通过「心脏支架降价事件」这个段落,关联在一起。

目前的双链软件与这种标签系统还有些距离

以 logseq 为例,笔记的「标题」被赋予了太高的重要性。在我看来笔记标题不应该特殊化。

以 logseq 为例,关系图谱(也即本篇所指的标签结构),没有被很好地发掘利用。


这篇文章,介绍了使用局部多标签形成分层的标签结构,怎样利用这种标签结构。但关于标签还有很多问题:

这些留到下篇再谈吧。我自己也还有很多疑问。

欢迎大家讨论质疑。

4393 次点击
所在节点    分享发现
18 条回复
advancejar
2021-12-29 21:03:24 +08:00
写的很用心,但是我觉得没看懂,字都认识
kingsley777
2021-12-30 09:34:38 +08:00
感谢楼主分享!
我原先手工整理笔记标签,把每个描述拆成词做标签,结果工作量太大,而且拆的太碎效果反而不好就放弃了。
最后还是简单粗暴的多关键词搜索
sillydaddy
2021-12-30 10:23:55 +08:00
@advancejar
前面的图应该可以看懂吧😅?可能还是有些地方没表达出来,我有点当局者迷了。


@kingsley777 > “把每个描述拆成词做标签,结果工作量太大,而且拆的太碎效果反而不好。。”
「拆的太碎效果不好」是不是就是因为没有结构呢?我非常能想象出一大堆破碎的标签是什么效果。
但假设标签之间有结构,那么你搜一个很小很细碎的标签,它也会给到你与之直接关联、间接关联的其他标签,进而是相关的笔记片段。

工作量的话,假如工具重点针对标签功能发力,应该会方便很多。
zhuangjia
2021-12-31 15:27:03 +08:00
@advancejar “写的很用心,但是我觉得没看懂,字都认识” +1
我都是往笔记里面一扔,当然结果就是很多时候搜不到想要的
sillydaddy
2021-12-31 16:25:58 +08:00
@zhuangjia
@advancejar
可以问一下,具体是哪里没看懂吗?希望在下一篇中,补足一下。

自我感觉[上篇]( https://www.v2ex.com/t/818822)的整体表达比较清晰;
对于这篇,后面的文字部分表达地确实不那么通顺,有些背景概念可能只有自己知道,但我真希望能把自己脑袋里的「水印」给到大家。

本来想由浅入深表达出自己的想法,看来还是失败了。
advancejar
2021-12-31 19:52:47 +08:00
@sillydaddy 做成视频吧
zhuangjia
2022-01-04 11:30:43 +08:00
@sillydaddy
也不是哪个地方没看懂,文章其实写的挺明白了:相对于上篇多了很多图篇帮助理解。
但我没有这方面需求,暂时也不打算去实践,所以停留在了解就可以了。
我复制一楼的这句话,更多的是调侃:这个太复杂了,我肯定做不到。
yibie
2022-01-16 12:58:14 +08:00
并不是只有多级标签,更重要的是网状的关联——非常认同。

从个人的实践来说,和你的感受一致,最终概念与概念之间形成正确的联系之后,才能构成知识。

所以我一直到现在也没有去采用双向链接这种方式。但我之前看了 B 站上的阿婆主 [影视飓风] 关于工作流程的分享,意外的发现也许飞书的网状结构会更好。但我自己并没有在飞书上构建自己知识库的打算。

我个人还是喜欢原始的 zettelkastan 的方式。我个人觉得,不是所有的事情,都值得这样子去整理知识网,但如果自己真的努力去寻找概念和概念的联系,最终还是在心里形成了知识网。让自己在思考某个问题的时候,会迅速关联到相关的概念中去。

完全将知识网可视化可能是一个费力而不讨好的事情。

---

PS:你是用 graphviz 来生成概念图的吗?
sillydaddy
2022-01-22 15:25:37 +08:00
@yibie 对,是用 graphviz 生成的。

> “。。最终概念与概念之间形成正确的联系之后,才能构成知识。。”
这点是没错。不过,我在帖子里提到的关联,主要是用来实现「搜索」功能的。应该跟你说的「。。努力去寻找概念和概念的联系,最终还是在心里形成了知识网。。」不是一个意思。
duanguyuan
2022-01-23 18:20:12 +08:00
赞一个,很用心了
Jay54520
2022-05-24 18:32:31 +08:00
Google 搜索已经实现了你说的大部分功能,比如近义词甚至 typo 、图像识别、关联视频、给网页打标签,但它是自动化的。即使需要人工的,也可以人工标记后被机器学习。那么是否存在可以本地运行的搜索引擎,能实现上述功能?

目前笔记软件的搜索只能搜索关键词,而不能实现近义词搜索,更不能理解文章的语义,自动打上标签。
sillydaddy
2022-05-24 19:51:42 +08:00
@Jay54520 >「 Google 搜索已经实现了你说的大部分功能,比如近义词甚至 typo 」

我也相信随着 AI 的发展,这些自动化搜索都会出现。不过目前 Google 还没有那么智能吧?

比如我在上篇里提到的例子:「今天见了好友老张,在大排档吃了顿烤串,很高兴」,隐含了「社交活动」、「饮食」、「心情」这三个抽象的标签。目前的自动标签系统还不能打吧?
Jay54520
2022-05-24 20:30:52 +08:00
@sillydaddy
“「今天见了好友老张,在大排档吃了顿烤串,很高兴」,隐含了「社交活动」、「饮食」、「心情」这三个抽象的标签。”
这个当前就可以做到,比如你用 Google 搜索一张你拍摄的树的照片,Google 能识别这个是树,而它之所以能识别,是因为通过大量普通人标记的树的照片而学习到的。
语义理解同理,如果大量人标记“烤串”为“饮食”,那它自然也能学习到,并且还会打更多普通人想到的而你没想到的标签,比如关联的“鸡肉”、“五花肉”、“孜然”等等。

对于一些独特的标签,比如你打这些标签的逻辑和大部分普通人的逻辑不一样,才需要你手工去打。

即使不完美,能做大部分,也能很大减少你手动组织的负担。

所以你可以去搜索以下有没有相关的搜索引擎服务。https://photoprism.app/features 是可以本地运行的、通过机器学习识别图片的,文本的搜索引擎我还没有找到。
sillydaddy
2022-05-25 10:43:41 +08:00
@Jay54520
嗯,其实搜索引擎能够做到概念的抽象,比如把一段话抽象成简单一句话,应该就可以做到。但能达到这种程度的话,应该算是有语义理解能力了吧,如果只是单纯靠标记数据去学习,恐怕很难做到。回头我去找找看有没有这种。
54qyc
2023-08-01 16:25:52 +08:00
所有楼主有啥笔记软件推荐吗?目前我对笔记软件就 2 个要求 1. 输入功能媲美 typora 2. 支持强大的搜索,最好能够开放 API 我自己写插件可以随时搜索。
sillydaddy
2023-08-01 16:46:29 +08:00
@54qyc
目前看结合 chatgpt 这种 AI 的笔记应用是最合适的。我在 12 楼还说 AI 提供自动化搜索还有段距离呢,但这么快 chatgpt 就出来了。
有了 AI 的加持,提取笔记中的关键词、标签,都不在话下,这种标签结构的构造,其实也没有太大的意义了,都可以由 AI 代劳了。
54qyc
2023-08-01 16:52:57 +08:00
@sillydaddy 所以有笔记软件结合了 chatgpt 吗
sillydaddy
2023-08-01 16:57:25 +08:00
@54qyc 我不清楚哈。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX