Compare commits
10
Commits
1e49e5f360
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc015ed2e2 | ||
|
|
bfe2feb709 | ||
|
|
a37a15d5de | ||
|
|
c1643ac023 | ||
|
|
15d4ff5206 | ||
|
|
82c9872576 | ||
|
|
a3bdf936f8 | ||
|
|
2986468731 | ||
|
|
57072f4f53 | ||
|
|
f9920a346f |
No files matched your search
+3
-1
@@ -1 +1,3 @@
|
|||||||
__pycache__
|
__pycache__
|
||||||
|
|
||||||
|
/.vscode/*
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2017 Linwei
|
Copyright (c) 2025 Linwei
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Free English to Chinese Dictionary Database.
|
|||||||
|
|
||||||
给数据库中每个单词标注:是否是各类考试大纲词汇?以及他们在 BNC 和其他语料库里的词频顺序。BNC 词频统计的是最近几百年的历史各类英文资料,而当代语料库只统计了最近 20 年的,为什么两者都要提供呢?
|
给数据库中每个单词标注:是否是各类考试大纲词汇?以及他们在 BNC 和其他语料库里的词频顺序。BNC 词频统计的是最近几百年的历史各类英文资料,而当代语料库只统计了最近 20 年的,为什么两者都要提供呢?
|
||||||
|
|
||||||
很简单,quay(码头)这个词在当代语料库里拍两万以外,你可能觉得是个没必要掌握的生僻词,而 BNC 里面却排在第 8906 名,基本算是一个高频词,为啥呢?可以想象过去航海还是一个重要的交通工具,所以以往的各类文字资料对这个词提的比较多,你要看懂 19 世纪即以前的各类名著,你会发现 BNC 的词频很管用。
|
很简单,quay(码头)这个词在当代语料库里排到两万以外,你可能觉得是个没必要掌握的生僻词,而 BNC 里面却排在第 8906 名,基本算是一个高频词,为啥呢?可以想象过去航海还是一个重要的交通工具,所以以往的各类文字资料对这个词提的比较多,你要看懂 19 世纪即以前的各类名著,你会发现 BNC 的词频很管用。
|
||||||
|
|
||||||
而你要阅读各类现代杂志,当代语料库的作用就体现出来了,比如 Taliban(塔利班),在 BNC 词频里基本就没收录(没进前 20 万词汇),而在当代语料库里,它已经冒到 6089 号了,高频中的高频。
|
而你要阅读各类现代杂志,当代语料库的作用就体现出来了,比如 Taliban(塔利班),在 BNC 词频里基本就没收录(没进前 20 万词汇),而在当代语料库里,它已经冒到 6089 号了,高频中的高频。
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ d:perceived/p:perceived/3:perceives/i:perceiving
|
|||||||
|
|
||||||
fuse:pos = `n:46/v:54`
|
fuse:pos = `n:46/v:54`
|
||||||
|
|
||||||
代表 fuse 这个词有两个位置(词性),n(名词)占比 46%,v(动词)占比 54%,根据后面的比例,你可以直到该词语在语料库里各个 pos 所出现的频率。关于 pos 里各个字母的含义还可以看 [这里](http://www.natcorp.ox.ac.uk/tools/xaira_search.xml?ID=POS) 和 [这里](http://www.natcorp.ox.ac.uk/docs/c5spec.html)。
|
代表 fuse 这个词有两个位置(词性),n(名词)占比 46%,v(动词)占比 54%,根据后面的比例,你可以知道该词语在语料库里各个 pos 所出现的频率。关于 pos 里各个字母的含义还可以看 [这里](http://www.natcorp.ox.ac.uk/tools/xaira_search.xml?ID=POS) 和 [这里](http://www.natcorp.ox.ac.uk/docs/c5spec.html)。
|
||||||
|
|
||||||
## 词典使用
|
## 词典使用
|
||||||
|
|
||||||
@@ -187,6 +187,20 @@ linguist.py 里面有一些简单的 WordNet, NodeBox 封装。
|
|||||||
|
|
||||||
采用 CSV 格式正是为了方便 GitHub 上提交 PR,管理 differ,欢迎大家提交各类词条增补。
|
采用 CSV 格式正是为了方便 GitHub 上提交 PR,管理 differ,欢迎大家提交各类词条增补。
|
||||||
|
|
||||||
|
## 更多词典
|
||||||
|
|
||||||
|
我的其它词典:
|
||||||
|
|
||||||
|
- 《[简明英汉必应版](https://skywind.me/blog/archives/2875)》
|
||||||
|
- 《[单词释义比例词典](https://skywind.me/blog/archives/2938)》
|
||||||
|
- 《[近义词辨析词典](https://skywind.me/blog/archives/2941)》
|
||||||
|
|
||||||
|
欢迎关注:
|
||||||
|
|
||||||
|
- 我的博客:https://skywind.me/blog
|
||||||
|
- 个人推特:https://x.com/skywind3000
|
||||||
|
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
- ~~搜索并校对:所有动词(3 月 21 日根据 NodeBox 工具包校对完成)~~
|
- ~~搜索并校对:所有动词(3 月 21 日根据 NodeBox 工具包校对完成)~~
|
||||||
@@ -215,5 +229,7 @@ linguist.py 里面有一些简单的 WordNet, NodeBox 封装。
|
|||||||
- 2017-3-21 使用 NodeBox 校对完所有动词,并且添加动词各种时态。
|
- 2017-3-21 使用 NodeBox 校对完所有动词,并且添加动词各种时态。
|
||||||
|
|
||||||
## Applications
|
## Applications
|
||||||
|
|
||||||
[T.vim](https://github.com/sicong-li/T.vim) vim 的翻译插件。
|
[T.vim](https://github.com/sicong-li/T.vim) vim 的翻译插件。
|
||||||
[Trans.nvim](https://github.com/JuanZoran/Trans.nvim) neovim 的翻译插件。
|
[Trans.nvim](https://github.com/JuanZoran/Trans.nvim) neovim 的翻译插件。
|
||||||
|
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
import csv
|
||||||
|
import sqlite3
|
||||||
|
from pathlib import Path, PurePath
|
||||||
|
|
||||||
|
import stardict
|
||||||
|
|
||||||
|
MYSQLITE = 'ecdictSqlite.db'
|
||||||
|
|
||||||
|
|
||||||
|
def new_inflection(exchange):
|
||||||
|
"""去除ECDICT exchange字段中冗余的f:复数, b:比较级, z:最高级。如果与对应标
|
||||||
|
签内容不同,则予以保留。
|
||||||
|
|
||||||
|
Note:
|
||||||
|
ecdict exchange列中0: 代表Lemma,如 perceived 的 Lemma 是 perceive
|
||||||
|
|
||||||
|
类型 说明
|
||||||
|
p 过去式(did)
|
||||||
|
d 过去分词(done)
|
||||||
|
i 现在分词(doing)
|
||||||
|
3 第三人称单数(does)
|
||||||
|
r 形容词比较级(-er)
|
||||||
|
t 形容词最高级(-est)
|
||||||
|
s 名词复数形式
|
||||||
|
0 Lemma,如 perceived 的 Lemma 是 perceive
|
||||||
|
1 Lemma 的变换形式,比如 s 代表 apples 是其 lemma 的复数形式
|
||||||
|
|
||||||
|
https://github.com/skywind3000/ECDICT/issues/23
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
if len(exchange) == 0:
|
||||||
|
return ''
|
||||||
|
lists = exchange.split('/')
|
||||||
|
|
||||||
|
inflection = {}
|
||||||
|
|
||||||
|
for trans in lists:
|
||||||
|
inflection[trans[0]] = trans[2:]
|
||||||
|
|
||||||
|
old_new = {'b': 'r', 'z': 't', 'f': 's'}
|
||||||
|
# 只去除相应重复值。如不重复的话,仍保留b, z, f标签。
|
||||||
|
for i in old_new:
|
||||||
|
if inflection.get(i):
|
||||||
|
if not inflection.get(old_new[i]):
|
||||||
|
inflection[old_new[i]] = inflection[i]
|
||||||
|
inflection.pop(i)
|
||||||
|
elif inflection[old_new[i]] == inflection[i]:
|
||||||
|
inflection.pop(i)
|
||||||
|
|
||||||
|
newexchange = []
|
||||||
|
for i in inflection:
|
||||||
|
newexchange.append(i + ':' + inflection[i])
|
||||||
|
|
||||||
|
return ('/').join(newexchange)
|
||||||
|
|
||||||
|
|
||||||
|
def init_ecdict_sqlite():
|
||||||
|
|
||||||
|
stardict.convert_dict(MYSQLITE, 'ecdict.csv')
|
||||||
|
con = sqlite3.connect(MYSQLITE)
|
||||||
|
cur = con.cursor()
|
||||||
|
|
||||||
|
# 查询所有行的数据
|
||||||
|
select_query = "SELECT word, exchange FROM stardict"
|
||||||
|
cur.execute(select_query)
|
||||||
|
rows = cur.fetchall()
|
||||||
|
|
||||||
|
# 遍历每一行,根据 word和exchange 的值更新新建列lemma
|
||||||
|
for row in rows:
|
||||||
|
word = row[0]
|
||||||
|
exchange = row[1]
|
||||||
|
|
||||||
|
inflection = new_inflection(exchange)
|
||||||
|
|
||||||
|
update_query = "UPDATE stardict SET exchange = ? WHERE word = ?"
|
||||||
|
cur.execute(update_query, (inflection, word))
|
||||||
|
|
||||||
|
con.commit()
|
||||||
|
con.close()
|
||||||
|
|
||||||
|
|
||||||
|
init_ecdict_sqlite() # 只需运行一次,生成sqlite3 db文件
|
||||||
|
|
||||||
|
# 转换SQLITE为csv文件
|
||||||
|
stardict.convert_dict('ecdict.csv', MYSQLITE)
|
||||||
+370
-370
File diff suppressed because it is too large.
Load diff
BIN
Binary file not shown.
Reference in new issue
Block a user