相关资料下载:
中文维基百科下载地址:https://dumps.wikimedia.org/zhwiki/20180720/
WikiExtractor项目git地址:https://github.com/attardi/wikiextractor
OpenCC项目git地址:https://github.com/BYVoid/OpenCC
中文分词jieba项目git地址:https://github.com/fxsjy/jieba
gensim官网地址:https://radimrehurek.com/gensim/install.html
一、语料库的下载
我下载是zhwiki-20180720-pages-articles.xml.bz2文件,1.5G左右是一个压缩包,下载的时候需要注意文件的名称。
二、语料库文章的提取
下载完成之后,解压缩得到的是一个xml文件,里面包含了许多的文章,也有许多的日志信息。所以,我们只需要提取xml文件里面的文章就可以了。我们通过WikiExtractor来提取xml文件中的文章,它是一个意大利人写的一个Python脚本专门用来提取维基百科语料库中的文章,将每个文件分割的大小为500M,它是一个通过cmd命令来设置一些参数提取文章,提取步骤如下:
a、WikiExtractor的安装
将整个WikiExtractor项目clone或者下载到本地,打开cmd窗口,切换到WikiExtractor项目中的setup.py文件的路径中,执行以下命令安装WikiExtractor
python setup.py install
b、维基百科语料库文章的提取
使用WikiExtractor来提取语料库中的文章,还需要使用到WikiExtractor.py脚本,与setup.py文件在同级目录下,通过以下命令来提取语料库中的文章
python WikiExtractor.py -b 500M -o zhwiki zhwiki-20180720-pages-articles.xml.bz2
参数介绍:
-b,设置提取文章后的每个文件大小
-o,制定输出文件的保存目录
zhwiki-20180720-pages-articles.xml,下载的维基百科语料库文件
更多参数的使用,可以通过以下命令查看:
python WikiExtractor.py -h
使用WikiExtractor提取文章,会在指定目录下产生一个AA的文件夹,里面会包含很多的文件。使用WikiExtractor提取的文章格式如下:
其中省略号表示的就是文章的内容,所以后面我们还需要通过正则化表达式来去除不相关的内容。
c、中文简体和繁体的转换
因为维基百科语料库中的文章内容里面的简体和繁体是混乱的,所以我们需要将所有的繁体字转换成为简体。这里我们利用OpenCC来进行转换。
OpenCC的使用教程请参考:https://blog.csdn.net/sinat_29957455/article/details/81290356
d、正则表达式提取文章内容并进行分词
使用WikiExtractor提取的文章,会包含许多的
获取停用词
去除停用词和不必要的内容
将文章转换成为词
e、将分词后的文件合并为一个
将分词后的多个文件合并为一个文件,便于word2vec模型的训练
三、word2vec模型的训练
训练word2vec模型的时候,需要使用到gensim库,安装教程请参考官网,通过pip命令就可以进行安装。训练过程需要30分钟到1个小时,具体训练时间与电脑的配置相关。
四、word2vec模型的使用
训练完成之后,我们可以利用训练好的模型来做一些词的预测,主要包括三个方面的应用。
1、找出与指定词相似的词
返回的结果是一个列表,列表中包含了制定个数的元组,每个元组的键是词,值这个词语指定词的相似度。
2、计算两个词的相似度
最后计算出来的相似度有,similarity:0.7241
3、根据前三个词来类比
五、资源下载地址
git项目下载地址:https://github.com/steelOneself/NLP_learn/tree/master/zhwiki_chinese
git项目中没有包含模型文件,因为模型文件比较大,我上传到百度云了,下载地址:
链接:https://pan.baidu.com/s/1o-7H-0h9fGCsdCyjmxJPUQ 密码:javh
下载后,将解压的模型文件放到项目中的model文件夹中。
用户评论
我之前也试着用过维基百科中文语料库来训练 word2vec 模型!确实感觉效果不错,对词义相似度的捕捉非常强大。最近正想深入研究一下不同语料量的影响。
有17位网友表示赞同!
这个项目的思路很巧妙,用维基百科中文语料库训练 word2vec 模型绝对能够得出很好的结果。我也尝试过一些 NLP 相关的项目,感受到了开源资源的巨大价值。
有8位网友表示赞同!
有没有想过尝试加上其他类型的中文语料呢?比如小说、新闻等,这样能提高模型对不同领域语言的理解能力吧?
有13位网友表示赞同!
感觉这个模型的效果应该非常依赖于训练数据的质量和处理方式。维基百科虽然庞大,但是否足够代表中文语境还有待考察。
有10位网友表示赞同!
对于中文文本处理来说,维基百科这类的结构化数据可以作为很好的基础。不过,还要注意去除一些噪声数据,才能更好地训练模型。
有16位网友表示赞同!
很期待看到这个项目的结果!我一直在尝试用 word2vec 模型进行中文文本分类任务,希望能借鉴你的经验获取一些灵感。
有6位网友表示赞同!
我觉得开源社区在这个项目上可以做得更好。比如,可以提供详细的预训练模型参数和训练脚本,方便其他开发者直接使用或进行二次开发。
有20位网友表示赞同!
虽然维基百科涵盖很多知识领域,但它毕竟是专门的开放式百科词条集合。如果要进行更复杂的任务,如情感分析等,可能需要结合其他的语料库来增强模型的表达能力。
有15位网友表示赞同!
之前我用过其他开源的 word2vec 模型,效果的确不错的!这个项目的应用场景也非常广泛,比如推荐系统、问答系统等等,很有实际价值。
有10位网友表示赞同!
中文维基百科的可获取性确实很高,对于像我这样的初学者来说是个很好的学习资源。 希望能看到更多利用中文语料库训练模型的项目!
有12位网友表示赞同!
用 word2vec 模型进行文本相似度计算,效果真的很好!我现在在做的一个项目中就需要用到这个功能,希望这个项目能够提供一些有用的代码片段
有5位网友表示赞同!
我感觉这种训练方式对中文语料库的标注和清洗要求很高,不然容易导致模型输出偏差非常大。
有14位网友表示赞同!
我觉得这个项目挺有意思的,但是 word2vec 模型本身还是比较局限,对于更复杂的文本理解任务可能效果有限...
有15位网友表示赞同!
这个训练方法很有创新性,使用中文维基百科语料库能有效提升模型对中文语言的理解能力。 期待看到更多深入的研究成果!
有14位网友表示赞同!
项目做得不错,很实用!我之前也尝试过用 word2vec 模型进行中文文本分析,但总是感觉效果欠佳。这个中文维基百科语料库可以帮助我解决这个问题吗?
有15位网友表示赞同!
这种训练方法是否考虑了中文词义的多样性和上下文依赖性? 觉得还需要进一步研究和优化才能达到更理想的结果。
有14位网友表示赞同!
开源社区的贡献越来越精彩了! 项目思路清晰,能为中文 NLP 研究提供很好的参考价值。期待看到更多有趣的研究成果!
有18位网友表示赞同!
我比较好奇这个项目训练模型的时间成本,以及硬件需求是多少?
有13位网友表示赞同!