如何解析自由文件(* .dict和* .index)

时间:2015-10-01 12:07:58

标签: java python translation language-translation

我正在寻找免费的翻译词典。 Freedict(freedict.org)提供了我需要的但我不知道如何解析* .index和* .dict文件。我也不知道谷歌要找到有关这些格式的有用信息。

* .index文件如下所示:

00databasealphabet  QdGI    l
00databasedictfmt1121   B   b
00databaseinfo  c   5o
00databaseshort 6E  u
00databaseurl   6y  c
00databaseutf8  A   B
a   BHO M
a bad risc  BHa u
a bag of nerves BII 2
[...]

和* .dict文件:

[Lot of info stuff]
German-English FreeDict Dictionary ver. 0.3.4
Pipi machen /piːpiːmaxən/
 to pee; to piss
(Aktien) zusammenlegen /aktsiːəntsuːzamənleːgən/
 to merge (with)
[...]

我很高兴看到一些示例项目(最好是在python中,但java,c,c ++也可以),以了解如何处理这些文件。

2 个答案:

答案 0 :(得分:2)

为时已晚。但是,我希望它对像我这样的人有用。

JGoerzen写了一个Dictdlib lib。你可以看到他解析.index和.dict文件的更多细节。 https://github.com/jgoerzen/dictdlib/blob/master/dictdlib.py

答案 1 :(得分:0)

dictd将其.index和.dict [.dz]的格式视为 private ,以保留将来更改它的权利。

如果您想直接处理它,索引包含 headwords ,而.dict [.dz]包含 definitions 。它可选地使用特殊的修改gzip算法进行压缩,提供几乎随机的访问,gzip通常不会这样做。索引每行包含3列,分隔符:

  1. 查找定义的标题。
  2. .dict [.dz]文件中定义的绝对字节位置,base64编码。
  3. 定义的长度,以字节为单位,base64编码。
  4. 有关详细信息,请参阅您在研究中找到的dict(8) man page数据库格式部分),然后再提出问题。要正确处理词条,您必须考虑编码和字符整理。

    最终使用现有的库来读取dictd数据库会更好。但这真的取决于图书馆是否良好(没有经验)。

    最后,正如您自己所说,XML完全是为了便于处理而制作的。您可以使用XPath提取词条和翻译,省略所有语法内容,无需费心解析任何内容。

    到目前为止,下一个问题是不同语言中的单词之间没有一对一的映射...