用户词库管理 - (英语)词汇提取、分析、学习、应用

关于词典新格式的讨论 继续讨论:

用户词库管理的背景与需求

需要说明的是,本贴的出发点完全是为了日常的学习提升(查字典、看电影、网络阅读、
kindle看书、工作等),并未考虑应试的情形(或许是相通的,但我没有仔细思考过)。

发现越来越有必要管理自己的词库,一方面可以帮助自己准确、快速地提升词汇量,另一
方面也可以不浪费各种场景下的日常学习成果。已有的工具总是有各种问题,要么只有一
部分功能,综合使用很麻烦,要么无法方便地与其他工具合作等等。若能将后文参考资料
中提到的各种工具链融合到一起,并结合词典工具,想想都很美好。

基本需求如下:

  1. 能够方便地建立用户词库:最好是常见的词库(如词典历史查询记录) + 自定义词库
    (如生词本、基础词汇、分级词汇等),并且可以在其中记录笔记、上下文、类别、
    tag等各种学习相关的字段。
  2. 可以从外部提取/批量导入词库( 详见以下的词汇提取 ),比如为了快速生成已
    熟悉词库,可以从常见的词频资料库或四六级词汇等导入,然后经过测试后筛查,将其
    中不熟悉的纳入生词本,或自定义的分级词库。
  3. 提供词汇相关的分析( 详见下文的词汇分析 )和管理功能,比如:这些用户词库
    之间可以方便地互相转换,可以方便地通过网络同步用户词库(方便手机、家里、公司
    等多种设备的词库),可以主动的推荐要学习的词汇(比如将熟悉的词汇与高频词汇对
    比后,将常见但并未掌握的词汇主动输出)。
  4. 可以导出不同格式的用户词库(最讨厌那种封闭的工具,毫不留情的抛弃),以便用于
    各种用途( 详见下文参考资料 ),比如词汇复习、字幕处理、阅读分析等。

========= 以下为参考资料 ============

词汇提取

在使用过程中逐步构建接近自己真实的词汇量,提取的生词就越精准

首次过滤高频常用词汇

  • British National Corpus lists - BNC from AntConc/
  • British National Corpus lists - BNC from PDAWIKI/
  • British National Corpus lists - BNC-20 v 3.2/
  • British National Corpus lists - BNC15000 from Audience Dialogue/
  • Brown Corpus list/
  • COCA词频表-美国当代英语语料库/
  • Collins 14700星级词频/
  • google-10000-english-master/
  • iWeb-基于14 Billion Word Web Corpus词频词典/
  • JACET 8000 for Japan ESL/
  • Lextutor Sublists of the Academic Word List/
  • Lextutor GSL 1000 and 2000 lists/
  • Longman Communication 3000 and 9000/
  • Longman Defining Vocabulary/
  • Macmillan 7500 Red Words & Stars List/
  • Macmillan Defining Vocabulary 2500/
  • Martinez’ BNC-5k Phrase Lists/
  • NGSL-New General Service List/
  • Oxford 3000 and 5000 Word lists/
  • Paul Nation Vocabulary Lists based on BNC/
  • Test Your Vocabulary/
  • VOA Special English Word Book/
  • Word Frequencies in Written and Spoken English Based on BNC/
  • Word list-基于影视字幕库的口语词频/
  • 高频短语词组(Vocabulary.com + Collins + 雅思 + 牛津)/
  • 其他词频/

GoldenDict查询记录及收藏

GoldenDict/F4首选项/高级/保存历史/最大历史条数5000 - 保存周期1分钟

iOS欧路词典生词本

欧路词典在iOS查询后,可用PC版导出生词本

Kindle生词本

Kindle Mate 是Kindle标注/笔记、Kindle生词本内容管理程
序。Kindle Mate同步导入Kindle标注笔记与生词本、提供书籍作者分类、内容搜索与导出
等管理功能,帮助提升Kindle深度阅读与语言学习用户体验。

字幕生词提取并翻译

studyzy/LearnEnglishBySubtitle

深蓝英文字幕助手,是一款学习英语的辅助工具,可以通过记录用户的词汇量,然后对英
文字幕中不认识的单词进行注释,做到摆脱中文字幕看懂美剧英剧。使用C# 写成,需
要.Net Framework 4.0的运行环境

“深蓝英文字幕助手”是一款看美剧(英剧)学英语的字幕辅助软件,通过只对英文字幕
中生词的注释,实现摆脱对中文字幕的依赖,同时在潜移默化中学习英语的目的。本软件
主要有以下特点:

  • 采用斯坦福自然语言处理引擎,实现很好的词性判断和注释预判。
  • 支持灵格斯提供的维科英汉词典,能够准确的提供英语单词的中文解释。
  • 采用柯林斯词频分级方式,方便为用户初始化词汇量。
  • 支持SRT,ASS等常用的字幕格式。
  • 自动对中文字幕过滤,对于中英双语的字幕处理后只保留英文字幕。
  • 支持用户词汇和生词的导入导出和调整。
  • 支持百度翻译和有道翻译提供的整句翻译。
  • 扩展:支持沪江开心词典,有道词典生词本等外部词典的生词本导入。
  • 扩展:支持灵格斯提供的朗道英汉词典、现代英汉综合大辞典,英汉速查词典,维科词典等较权威的词典,能够准确的提供英语单词的中文解释。
  • 最重要的是,本软件完全绿色、免费、开源

Celthi/meltSubtitles

融化字幕(melt subtile)去掉字幕的熟词,给生词一个参考释义
使用Python编写,支持Python 2和3

思路

  1. 词库假定是你认识的单词
  2. 将字幕里在词库中的单词去掉,
  3. 通过查询有道网页得到生词的释义
  4. 将释义加入到新的字幕文件中
  5. done

给定文本生词提取

洛克生词本
语境学英语、辅助阅读英文原著、妙用Anki的利器
目前最新版本1.7,仅支持Python 2.x
程序下载地址: https://pan.baidu.com/s/1jItXuVO

  • 为什么要使用洛克生词本?帮你更有效地背单词,更高效地阅读英文原著
  • 洛克生词本可以做什么?自动扫描英文文本中难词、生词,查找释义,添加例句注意!
    这个例句是难词或生词出现在文本中的那个句子,也就是这个单词所在的“语境”
  • 洛克生词本生成的是什么?是tab键分隔的txt文件,你需要把它导入到一个记忆辅助软
    件“Anki”中
  • 我最终怎么学习? Anki记忆库是由许多卡片(Card)组成的,牌面是“生词”,牌背
    是“音标 - 例句 - 释义”,就像我们以前自己做的抽认卡一样! Anki使用的是被证明
    行之有效的记忆算法,帮你更科学地复习

Steven-AA/find-all-the-new-words
FAIDK 建立自己的词库,找出文章中的生词(配合anki使用)
依赖Python 3.6

hao-lee/VocabularyAnalyzer
英语词汇分析器,可用于提取文本中的高阶词汇
用 NLTK 的 lemmatizer 函数库进行词形还原

sandae/epubFreq
为epub电子书添加词频标记和注释(词典释义)
使用shell和python混合编程

词汇分析

AntConc统计分析

AntConc

A freeware corpus analysis toolkit for concordancing(索引)and text analysis,
具体包括7个模块: Concordance Tool索引, Concordance Plot Tool索引定位, File View
Tool文件查看, Clusters词丛/N-Grams部分词丛N元模式, Collocates搭配, Word List词
表, Keyword List关键词表

材料难度分析

爱英阅iyingyue

英文分析与提词软件,辅助阅读英文原著、英语资讯,为英语学习和英文原著爱好者设
计,帮助读者提前梳理英文中的生词,获得更顺畅的阅读体验. 可以对原著进行难度分
析:有多少不认识的单词,占比多少,词汇生僻度,单词总量等。

词形还原Lemmatization

AntBNC Lemma List (ver. 003)

An English lemma list based on all words in the BNC corpus with a frequency
greater than 2 (created by Laurence Anthony).

michmech/lemmatization-lists

Machine-readable lists of lemma-token pairs in 23 languages.

These are large-coverage, machine-readable lemma/token pairs in several
languages which I have collected (legally) from various sources, mostly as part
of my work on the Global Glossary project. I use these for query expansion
during fulltext searches: if a user searches for the lemma walk, the query is
expanded to also search for the tokens walking, walked etc.

These are plain text files (zipped). Each line contains one lemma/token pair
separated by a tab character in this sequence: lemma, tab, token. The files are
encoded in UTF-8 with Windows-style line breaks.

NLP语言分析

Natural Language Toolkit NLTK is a leading platform for
building Python programs to work with human language data. It provides easy-to-
use interfaces to over 50 corpora and lexical resources such as WordNet, along
with a suite of text processing libraries for classification, tokenization,
stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-
strength NLP libraries, and an active discussion forum.

自然语言处理

生词复习

GoldenDict浏览学习

先将生词表导入GoldenDict历史,并逐个浏览
若有必要则添加整理至GoldenDict收藏夹

* GoldenDict/历史/导入、导出
* GoldenDict/收藏/添加Ctrl+E、导入、导出

Anki周期复习

Anki卡片制作Excel模板

ninja33/ODH

在线词典助手 (含Anki制卡功能) A chrome extension to show online dictionary
content.

用于浏览网页时查询在线词典,将查询内容显示在单词旁的小弹窗里,并支持Anki制卡功
能(需在Anki上安装ankiconnect插件).

1nsp1r3rnzt/chrome-anki-quick-adder

This chrome extension provides the ability to create Anki cards directly from
Google Chrome on your Anki Desktop.

7 Likes

这个最难。gui界面+server,感觉前端+后端开发才行。
前端如果要实现个人定制化的话,只能看有没有开源的代码可供使用。
后端可用flask之类的

1 Like

节省时间可以用 FastAPI,几分钟就可以做一个后端出来。下面这一页官方文档,边读边做,还没读完就能实现一个了。

1 Like

关于网络同步,可否仅提供几种可能的机制,而非一步到位的server模式(类似anki,需要商业化的稳定支持)?比如“keepass”软件就可以通过ftp协议网络同步词库,或者借助网盘同步其中的词库,或者文本化的词库可以使用git等工具进行更精细的同步。这样,用户只要自己有网盘、FTP、NAS或git等,即可实现同步。

Goldendict 跨到移动端是最好的方案,如果能直接添加生词到 ANKI 就更完美了。很多词典的例句标注的非常好,可以直接挖空制卡,这些好资源用不上太可惜了。

多客户端同步要面临两个问题,一是增量更新,二是冲突解决。KEEPASS 的数据很小,全量更新就可以。第三方客户端不自建服务很难处理这两问题,除非云端提供相应的 SDK。

2 Likes

帖子的换行好像出了问题?句子中间就换行了

这是我在vim里编辑换行后,粘贴到这里的。与论坛的换行功能没关系。

难处在于每个词典结构不一样,标记也不一样,没有统一提取的方法。

anki官方的接口就很难用,anki connect勉强还能用,不过不是重点。

一个省心的做法是学anki web,一次只允许一个客户端连接,冲突了让用户选择覆盖哪个。当然这样不是很科学,可能导致一些数据丢失。

除开多媒体文件,数据量应该也不会很大,可以学 ticktick 的管理方案,每个数据和每个原子操作都加上 timestamp。

1 Like

新版传送门,支持Python3.7:

1 Like

@last_idol 兄方便整理一下例句质量高、HTML结构稍微清晰一点的词典吗?只需要列个表就可以了,不用着急,我应该可以用我的JSON化工具转换成专门的例句库。

另外,不知道大家理想中的例句库是什么样的?

2 Likes

我才刚刚接触js,后面有入门大概了解PHP的计划(不会深入),所以我还不太懂这些。只知道flask是python写的,简小灵活,可定制性强。

听说过一个叫 Trados 的翻译工具套件,好像还有配套的例句库/记忆库文件格式。

还有人做过超过三十万条双语句子的西班牙语例句数据库

例句库做好后很容易制作成反查mdx,比如汉译句子先分词、然后拿汉语词典的和其他反查mdx的keyword去碰。所以,也可以借鉴目前现有的反查mdx,反推例句库需要保留哪些字段信息。建议尽可能多保留信息,然后使用时再取子集。

词典范围需要考虑的是翻译质量。优先包括两岸三地正规出版社组织翻译的英汉词典,如韦氏高阶牛津高阶朗文剑桥柯林斯等等,已有不错电子文本的。其次是国内编辑出版的评价不错的汉英英汉词典中的例句。先摸索框架和实现方法,范围可以一边讨论一边扩充。

不要。

哈哈,明白hua大的好意。我还是想主用python的,所以以后如果深入学习后端的话会考虑flask或Django。

我现在的目的是,在短时间内对server-side 的运作机制有个大致总体的概念,也就是不管是用flask或Django或node或jsp或PHP,后端共性的那些入门知识。
听过“PHP到中期以后,学习&上升曲线陡峭到你怀疑人生”这种说法,但不可否认的是它入门很容易,而且简单看一眼PHP我也大致知道最快速的后端搭建是个什么样子。所以只是浮光掠影扫一遍,不计划设及PHP面向对象的内容。如果有大把时间,我可能考虑学习成熟的Django

不建议学习PHP,感觉算得上是一个被时代淘汰的东西了(个人观点,不喜勿喷)。更重要的是:用处不大。学好 Python 的话,几乎什么都能做,什么技术概念都能知道,各种前沿的也能接触到,哪怕是人工智能也能很快入门(当然前提是不缺GPU)。Python的好处在于上手快、写起来也快。

node、PHP、jsp这些从语言学习和折腾词典的角度,都不合适

2 Likes

后端类型太多了,学到 fastapi 就够了。

当然你学更多的(flask diango)也可以,只是想说,不划算。你也不拿这门手艺赚钱。

3 Likes

主要是要呈现哪些信息,例如:

  • 要按词性和释义分组吗?
  • 还是只保留例句?
  • 长长的、从网页上爬下来的例句(各类在线例句)可吗?
  • 要不要例句发音?

等等。

现在不依赖任何工具,也可以通过复制粘贴制作anki卡片等,使用现成的权威词典,人工选取想要的例句即可。只是不太方便,比如需要不断切换多个程序、另存音频或调整格式等,以及不适合批量制作。

不明白为什么要单独制作例句库?

只是单词卡片的话就没多大必要,做填空什么的测试卡片还是比较有用

2 Likes

现在常用的六大高阶双解,都标注挺好的。例句单独提取的话,和外面的语料库没区别,价值降低了。理想中的例句要带上词性和解释,方便学习,但提取完怎么整合在一起很麻烦。