View on GitHub

DEVONthink-Chinese-Search

部分解决 DEVONthink 搜索问题

Download this project as a .zip file Download this project as a tar.gz file

DEVONthink 中文索引生成程序

因为有了非常优雅的解决方案,这个项目短期内不会再更新了

还请使用这个 Alfred Workflow: https://github.com/mpco/AlfredWorkflow-DEVONthink-Search

@ringsaturn

2018-11-30


使用须知

这个方法并不能解决 DEVONthink 面对中文文本时孱弱的语义理解能力,只能做到改善 DEVONthink 的索引能力

原理

一句话解释:调用结巴分词从文本中提取关键词,并手动把关键词填入 Comments 中,供 DEVONthink 索引 结巴分词详情:fxsjy/jieba: 结巴中文分词

具体解释如下: DEVONthink 的索引文件是一个个形如 ......-126376F59F4F.dtp2 的文件,其中包含了文件的元数据与可供索引的信息。由于 DEVONthink 不支持对中文等非拉丁语言进行分词,所以无法直接搜索关键词。对于 DEVONthink 而言,每一句话(前后是标点符号的即分割为一句话)就是一个单词,这对于中文肯定是不行的。我知道有一种变通的方法通过用 * 来分开每隔汉字,从而获得较好的搜索结果体验。这种方法带来的问题是,搜索起来太不直观了。解决方法就是尽可能完善相应项目的 Spotlight Comments,把可供 DEVONthink 索引的词填入进去即可。这也正是这个程序的目的,生成搜索关键词

用法

需要注意的是,程序默认提取的关键词都是名词,如果有别的需要,则需要修改对应部分的词性

安装及准备工作

准备后台服务

所有路径均默认在用户的根目录下

git clone https://github.com/ringsaturn/DEVONthink-Chinese-Search

cd DEVONthink-Chinese-Search

# 安装依赖
pip3 install -r requirements.txt

# 启动服务器
# 默认使用 5050 端口
# 重启/注销后需要再次执行这个命令
screen python3 AnalyzeKeyWordsAPI/Server.py

准备前台服务 Alfred Workflow

推荐使用 get keywords 后台模式.alfredworkflow

其他

待完成

重要更新记录

2018-01-31 更新 2.0

实现了一个简单的 POST 接口,通过后台运行一个小型服务器,大幅降低提取关键词耗时(主要是结巴分词初始化耗时)


2018-01-31 晚间更新 2.1

利用 shell 脚本和 cURL 实现了一个更好的获取请求速度


2018-02-01 更新 2.2

增加一个后台功能,在后台读取剪贴板内容并把关键词粘贴回剪贴板


2018-02-21 更新 2.3b

测试功能,2.3 中已取消

从 2.3b 开始,提取关键词流程做了改变

做出这个改变的原因是,在测试中发现结巴分词的提取关键词功能是基于词频的,语义上重要的词语并没有提取出来,故不进行根据权重的提取,试图用搜索引擎模式提高召回率

更新后的效果还有待观察。


2018-03-01 更新 2.3

参考:词性简介参见 jieba(结巴)分词种词性简介