我想要一个用于研究/参考目的的拉丁单词列表。 (喜欢/usr/share/dict/words
)
似乎没有这样的单词列表(apt-file search /usr/share/dict | sort | uniq | grep latin
),但有一个 DICT 英语拉丁词典:dict-freedict-eng-lat
。
有没有一种简单的方法可以从中获取单词列表?
我尝试了一些快速的手动解析使用.dz
,sed
但格式看起来足够复杂,需要一点解析。我尝试过dictunformat
命令,但是它产生了c5数据库这看起来是二进制格式。我找不到与此类文件交互的工具。
答案1
zcat /usr/share/dictd/freedict-eng-lat.dict.dz | perl -e 'my %dict; $start=0; $/="\n"; while (<>) { next if $_ =~ m/(\/|\x90)/; chomp; $_ =~ s/[0-9\. ]*//g; $start = 1 if $_ eq 'abecedarium'; next if $start==0; @words=split(/\;/,$_); foreach my $word (@words) { $dict{$word}=1;} }; $,="\n"; print sort keys %dict;'
要解压缩文件,请跳过包含以下内容的所有英文行/发音/,跳过带有奇怪 DLE 字符的行,跳过所有标题行,直到到达第一个真正的单词“基础”,删除数字、点和空格,拆分用 分隔的词形变化“;”并将每个单词添加到哈希中以获得唯一的条目。最后,打印所有以 $ 分隔的单词,设置为换行符\n
示例输出:
ager
agere
agna
agnellina
agnina
答案2
如果我没记错的话,.dz
这是 gzip 的一个变体,它允许仅压缩必要的块。尝试:
zcat dict-freedict-eng-lat.dz
大多数“.dz”是使用 freedict-tools 从更易于理解的格式(在格式为 TEI 的情况下)生成的。
更新:(我喜欢黑客解决方案,但是)现在“不那么黑客”的方式:
1)如果你想要拉丁语,请获取 freedict Lat-Eng(逆字典)的来源:
wget "https://sourceforge.net/projects/freedict/files/Latin%20-%20English/0.1.1/freedict-lat-eng-0.1.1.src.tar.bz2"
2)解压:
tar -xvjf freedict-lat-eng-0.1.1.src.tar.bz2
并享受与来源打交道的乐趣......
3) 从 XML-TEI 源 (lat-eng/lat-eng.tei) 获取拉丁语条目(orth xml 标签):
xidel -e "//orth" lat-eng/lat-eng.tei
最后一个建议:使用拉丁语-德语词典(更完整)
https://sourceforge.net/projects/freedict/files/Latin%20-%20German/0.4/freedict-lat-deu-0.4.src.tar.bz2
tar ...
xidel -e //orth lat-deu/lat-deu.tei | sort -u | wc (9730)
答案3
我写了一篇关于如何将 Aspell 字典转储和转换为单词列表,然后转换为可搜索的 MySQL/MariaDB 数据库的文章: