美文网首页
wiki资料获取

wiki资料获取

作者: zhengzhoufeng | 来源:发表于2020-01-23 11:26 被阅读0次

http://licstar.net/archives/262 原始连接,拷贝在此备份一下

第一步,下载中文的 Wiki Dump

链接是:http://download.wikipedia.com/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2。这个压缩包里面存的是标题、正文部分,如果需要其他数据,如页面跳转、历史编辑记录等,可以到目录下找别的下载链接。

第二步,使用 Wikipedia Extractor 抽取正文文本

Wikipedia Extractor 是意大利人用 Python 写的一个维基百科抽取器,使用非常方便。下载之后直接使用这条命令即可完成抽取,运行了大约半小时的时间。

bzcat zhwiki-latest-pages-articles.xml.bz2 | python WikiExtractor.py -b 1000M -o extracted >output.txt

参数 -b 1000M 表示以 1000M 为单位切分文件,默认是 500K。由于最后生成的正文文本不到 600M,把参数设置的大一些可以保证最后的抽取结果全部存在一个文件里。

第三步,繁简转换

维基百科的中文数据是繁简混杂的,里面包含大陆简体、台湾繁体、港澳繁体等多种不同的数据。有时候在一篇文章的不同段落间也会使用不同的繁简字。

解决这个问题最佳的办法应该是直接使用维基百科自身的繁简转换方法(参照 http://zh.wikipedia.org/wiki/Wikipedia:繁简处理)。不过维基百科网站虽然是开源的,但要把里面的繁简转换功能拆解出来,有一定的难度。

为了方便起见,我直接使用了开源项目 opencc。参照安装说明的方法,安装完成之后,使用下面的命令进行繁简转换,整个过程大约需要1分钟。

opencc -i wiki_00 -o wiki_chs -c zht2zhs.ini

命令中的 wiki_00 这个文件是此前使用 Wikipedia Extractor 得到的。

  到此为止,已经完成了大部分繁简转换工作。实际上,维基百科使用的繁简转换方法是以词表为准,外加人工修正。人工修正之后的文字是这种格式,多数是为了解决各地术语名称不同的问题:

他的主要成就包括Emacs及後來的GNU Emacs,GNU C 編譯器及-{zh-hant:GNU 除錯器;zh-hans:GDB 调试器}-。

  对付这种可以简单的使用正则表达式来解决。一般简体中文的限定词是 zh-hans 或 zh-cn,在C#中用以下代码即可完成替换:

view plaincopy to clipboardprint?

s = Regex.Replace(s, @"-\{.*?(zh-hans|zh-cn):([^;]*?);.*?\}-", @"$2");  

相关文章

网友评论

      本文标题:wiki资料获取

      本文链接:https://www.haomeiwen.com/subject/yolnzctx.html