辞書あいまい検索
此仓库实现日语词典的模糊搜索。
此仓库开始写于2020年7月4日。
- 下载并安装Python 3
- 在命令行中执行下列命令安装
zhconv
pip install zhconv
- 从EDRDG下载词典文件
edict2u.gz
,解压后,以dict_original.txt
作为文件名保存到同目录下。 - 运行Python文件
handle.py
,并等待显示出Done.
。 - 如果目录下出现文件
dict.txt
,则说明准备工作完成。
输入假名,搜索读音是该假名的词。例:
>>> はし
嘴 はし
橋 はし
端 はし
箸 はし
输入汉字,输出写作该汉字的词。例:
>>> 魚
魚 うお
魚 さかな
输入中文汉字,会自动转换成日语汉字。例:
>>> 绝对
絶対 ぜったい
输入空格,表示匹配任意0到4个字符(包括汉字、假名)。例:
>>> お ます
お邪魔します おじゃまします
お願いします おねがいします
鬼魣 おにかます
用罗马字的辅音或元音表示匹配这个音的任意假名。例如,k
表示匹配か
、き
、く
、け
、こ
中的任意一个;a
表示匹配あ
、か
、が
、さ
、ざ
、た
、だ
、な
、は
、ば
、ぱ
、ま
、や
、ら
、わ
、ぁ
、ゃ
中的任意一个。例:
>>> kwsu
革装 かわそう
詳しく くわしく
食わせる くわせる
辅音可以输入两个字母的ch
(表示ち
)、sh
(表示し
)、ts
(表示つ
),可以限定到更具体的范围。和大多数单字母不同的是,这些两个字母会匹配拗音,例如ch
也会匹配ちゃ
等;这是为了和下面一条规则保持一致。例:
>>> shch
七 しち
処置 しょち
鯱 しゃち
辅音可以输入单个字母+y
,表示以这个辅音开始的拗音。例如ky
会匹配きゃ
、きゅ
、きぇ
、きょ
。例:
>>> tysy
著者 ちょしゃ
著書 ちょしょ
在可能和两个字母的辅音混淆的地方,使用'
断开。建议任何连续多个字母匹配假名之间都断开。例:
>>> t's'u
他殺 たさつ
多湿 たしつ
多数 たすう
地質 ちしつ
蜘蛛 ちしゅ
手数 てすう
注意:如果能确定假名,请直接输入假名。输入罗马字会被识别成一个辅音匹配假名和一个元音匹配假名。例如,输入ka
是匹配[かきくけこ][あかがさざただなはばぱまやらわぁゃ]
。
其他一些字母的特殊匹配规则:
字母 | 匹配 |
---|---|
x |
大写あ行、长音符号、小写っ (朗读时连读或无声,但演唱时单独发声的假名) |
l |
小写假名 |
lx |
小写假名,但不包括っ 、ゕ 、ゖ (即舍假名) |
ly 、xy |
小写ゃ行 |
wy |
う 的拗音 |
kw 、q |
く 的拗音 |
qw |
く 的ぁ行拗音和ゎ行拗音 |
qy |
く 的ゃ行拗音 |
gw |
ぐ 的拗音 |
j |
じ 、ぢ |
jy |
じ 、ぢ 的拗音 |
c |
ち 、じ 、ぢ 及它们的拗音 |
dz |
ぢ 、づ |
sw |
す 的拗音 |
zw |
ずぃ |
cw |
つ 、ず 、づ 及它们的拗音 |
th |
て 的拗音 |
dh |
で 的拗音 |
tw |
と 的拗音 |
dw |
ど 的拗音 |
fw |
ふ 的ぁ行拗音 |
fy |
ふ 的ゃ行拗音 |
v |
ゔ 及它的拗音 |
vy |
ゔ 的拗音 |
nn |
ん |
katakana |
片假名 |
匹配规则支持正则表达式。下面列举一些常用的:
.
表示任意字符。A{1,3}
表示匹配前面这段规则重复1次到3次(即A
或AA
或AAA
)。数字可以改。- 如果要匹配两条规则中的任意一条,可以用
(A|B)
的格式。例如,不知道辅音是n
还是r
,可以用(n|r)
同时搜出来。 - 如果要匹配两条规则同时满足,可以用
(?=B)A
的格式。例如,要搜索じ
的拗音但不要ぢ
的拗音(也就是同时满足jy
和じl
),可以用(?=じl)jy
。 - 如果要匹配满足第一条规则但排除第二条规则,可以用
(?!B)A
的格式。例如,要搜索小写假名但不要っ
,可以用(?!っ)l
。 - 如果要匹配和前文相同的字符,可以用
(A)\1
的格式,其中1
代表第几组括号。例如,要搜索ABAC式的词语,可以用(.)(.)\1(?!\2).
。
优先输出完全匹配的结果。完全匹配是指从单词的开头到结尾恰好完整地匹配输入,在开头或结尾没有其他字符。
输出的结果中,常用词排在前面。然后再依次按读音的长度、写法的长度、读音顺序、写法顺序排序。
输出完一波结果之后,显示下列文字,询问是否继续输出。输入任意字符再按回车确认,直接按回车取消。
514 words found. 114 more. Show?
如果搜索结果一条都没有,则会尝试搜索释义。
输出的结果中,每行包括这个词的写法(黄色)、读音(白色)、词性(蓝色)、释义(灰色)四个部分。如果写法和读音相同,则省略输出读音。
表示词性的符号的完整列表,参见JMdict的说明。下面列出一些常见的:
符号 | 含义 |
---|---|
P |
常用词 |
arch 、dated |
古日语用法、过时的用法 |
rare |
罕见的用法 |
iK |
不规则的汉字写法(irregular) 后面的字母 K 是汉字(kanji),k 是假名(kana),o 是送假名(okurigana) |
oK |
过时的汉字写法(outdated) |
rK |
罕见的汉字写法(rare) |
sK |
便于搜索的汉字写法(search) |
uK |
常用的汉字写法(usually) |
adj-i |
イ形容词 / 一类形容词 |
adj-na |
形容动词 / ナ形容词 / 二类形容词 |
v5r |
五段动词 / 一类动词 数字后的字母表示结尾假名的辅音,例如 r 表示以る 结尾 |
v1 |
一段动词 / 二类动词 |
vk |
カ行变格活用动词 / 三类动词 |
vs |
サ行变格活用动词 / 三类动词 横杠后的 i 表示原形中已经带了する ,s 表示有时按す 变形 |
vz |
以ずる 结尾的一段动词 / 二类动词 |
v2r-k |
上二段动词(古日语)(kami) |
v2r-s |
下二段动词(古日语)(shimo) |
v4r |
四段动词(古日语) |
vi |
自动词 / 不及物动词 |
vt |
他动词 / 及物动词 |
jaconv.py
和colorprint.py
是hulubot的一部分。此处为特别开源。代码可能和源代码有不同。- 词典文件的著作权等,参见EDRDG的许可声明。