ECDICT-ultimate icon indicating copy to clipboard operation
ECDICT-ultimate copied to clipboard

数据清洗

Open panhaoyu opened this issue 5 years ago • 12 comments

数据过于杂乱,我尝试进行数据清洗,但是过于庞杂,一时半会无法做出来。是否可以添加一个功能来解析translation,通过在一个regular expression文件中配置规则,进行数据清洗与解析?

我有一个初步的构想,对translation的每一行进行清洗,将每一行作为一个义项 关于一行中有多个词性的义项,还要想办法将其分离。

我希望得到的清洗后的数据结构是:

{
  "abbr": {
    "full": "objective oriented",
    "translation": ["面相对象"],
  },
  "v": {
    "past": "did",
    "past participle": "done",
    "translation": ["做", "完成"],
  }
}

不知道是否有可能一起实现一个呢?

panhaoyu avatar Mar 01 '19 14:03 panhaoyu

不过我觉得这样好像不如重新爬取数据了

panhaoyu avatar Mar 01 '19 14:03 panhaoyu

想要什么格式,自己弄吧,我都提供了一份参考答案了,你还问我能不能帮你把你的考卷顺便写了。

skywind3000 avatar Mar 01 '19 15:03 skywind3000

。。现在的问题又不是格式。现在的问题是当初爬取数据的时候没有进行数据清洗,导致多个字典的数据杂糅在一起。这数据清洗的工作量我觉得还蛮大的。

panhaoyu avatar Mar 02 '19 00:03 panhaoyu

这基本是很难实现的,词典数据来源太多了,比如这种 Urban Dictionary:

Yoga Pants
Pants that make anyone look like they have an ass.
> "Damn when did Jillian get an ass".
> "She doesn't, its just the yoga pants".

这种:

Brexit
[网络] 英国退出欧盟

词组:

double down on
在……加倍下注
加把劲做某事

词组:

covering force area
部队掩护区

地名:

matera
[地名] [意大利] 马泰拉

skywind3000 avatar Mar 02 '19 04:03 skywind3000

你如果只是做高亮显示的话,可以粗暴的根据每行开头的:v., adj., adv. 或者 [网络] 等特殊字符判断下,大部分时候也够用了。

skywind3000 avatar Mar 02 '19 04:03 skywind3000

我在考虑增一个表,如果能洗干净我会发回来,不过可能要好久才能做完,数据量太大了

image

panhaoyu avatar Mar 02 '19 05:03 panhaoyu

向你致敬,对了,金山词霸的 api 好像取出来就是这种格式的。你可以写个爬虫爬个三天三夜,但是这个词典里起码有 100万个词在金山词霸里没有。

skywind3000 avatar Mar 02 '19 08:03 skywind3000

我还是用您的数据做解析吧,怎么说几百个正则表达式也要比十几个爬虫要简单一点

panhaoyu avatar Mar 02 '19 12:03 panhaoyu

我还是用您的数据做解析吧,怎么说几百个正则表达式也要比十几个爬虫要简单一点

兄弟,有一个前提,你这样做,分解的这么细致,出于什么目的?如果是给人看的话,我觉得没必要这么搞,人的头脑查词典,自然会结合自己的上下文,从释义里pick up出对应的内容来。也要考虑下人的能动性

urna avatar Aug 14 '19 10:08 urna

非常方便实用的词典数据库,不过稍微遗憾的是即使基础7万词汇用有道覆盖,前40万用bing覆盖,这种网络词典的数据质量依然可疑。我在想,既然已经有侵权嫌疑,是否可以做得更彻底一点,把前4万单词的释义用牛津高阶英汉双解的中文释义覆盖,前8-10万再用译文新英汉词典(或其他)覆盖,前20万用英汉大词典覆盖,前30-40万用21世纪英汉大词典或/和bing词典覆盖,这样日常会查到的单词的中文释义质量会有明显的提升。还有,做公众使用的MDX词典文件,为避免太嚣张,是有必要隐去部分版权释义来源的,但如果不考虑这种面向大众的用途,专业人员用它来研究,程序员以之为data base二次开发,根据资料来源来辨别释文质量、可靠性是很重要的。因此,请问是否可以推出一个“学术版”的sql数据库,释义用现有最高质量的数据覆盖,另列字段注明资料来源,顺便也把美音音标加上?

我自己并不算美音粉,毕竟大家从小还是学英音的多,但明显,我们正在用的github是美国人搞的,好莱坞大片和流行美剧也是美音,就连youtube上,精彩的视频也是说美语的居多。

我尝试过提取牛津高阶的中文释义( https://github.com/mahavivo/english-dictionary ),效果马马虎虎,不算很理想,html结构过于复杂了,比如class=“sense-g”神出鬼没,偶尔会漏掉东西或添加多余的东西。

谢谢。

mahavivo avatar Dec 14 '19 02:12 mahavivo

牛津高阶释义篇幅太大,不算是简明了

skywind3000 avatar Dec 14 '19 18:12 skywind3000

谢谢你的回复。部分常用词牛津高阶中文释义篇幅大这个问题我也考虑过,比如像like这种有很多词性与用法的,不过有道like的释义有一条是“n. (Like) (美、俄、印、英、巴)莉凯(人名)”,我认为比较搞笑,这是把一个很大的人名词典跟语文/百科词典直接合并了。要解决这个困扰,就是在牛津高阶前面再加一个或者两个覆盖层,比如《高等学校英语专业英语教学大纲》词汇表工作组 编写的“英语专业四、八级词汇表”,它有13000个单词,释义也很简洁。把这些常用词去掉之后,稍微生僻一点的词汇牛津高阶就不会大篇幅解释了。不用英语专业四、八级词汇表,也可以用牛津中阶(20000词汇)覆盖等,这里主要是提出一个思路,以大幅度提高释义质量,至于具体选择什么词典,都可以再议。

mahavivo avatar Dec 15 '19 01:12 mahavivo