zhwiki语料预处理

一、zhwiki语料的下载:

      https://dumps.wikimedia.org/zhwiki/

      https://dumps.wikimedia.org/zhwiki/20200201/

下载的是红色圈中的文件:zhwiki-20200201-pages-articles.xml.bz2

:其实zhwiki的dump应该是做增量dump的,所以可以直接下载latest即可,不必强调下载的是哪一天的。

二、gensim.corporaz 中的 WikiCorpus 类

WikiCorpus 类可以处理,但是抽取出来的数据都去除了标点符号,估计也可以设置参数保留这些标点符号,但是在BERT的Git主页上推荐了wikiextractor 工具,所以索性试试这个工具,展示放一放gensim。

三、Wikiextractor:

主页:https://github.com/attardi/wikiextractor

使用参考:主页有详细的使用指导

中文使用参考http://www.52nlp.cn/tag/wikiextractor

1、下载:直接从上面主页下载下来后,无需任何安装,直接可以用。

2、目前使用的抽取命令:

python3 WikiExtractor.py 
-o ./zhwiki-20200201 
-b 10M 
--json 
--processes 4 
../zhwiki-20200201-pages-articles.xml.bz2
-o ./zhwiki-20200201


表示将抽取出的数据输出到目录zhwiki-20200201中,其下会创建多个子目录,然后将抽取的文章数据导出到子目录中的文件中,每个文件大小有限制,由参数 -b 指定。

-b 10M 

每个文件的最大大小
 

--json 

文件中的一行数据用json的格式存放,格式如下:

{"id": "", "revid": "", "url":"", "title": "", "text": "..."}
--processes 4 

4个处理器(估计是多线程)
 

../zhwiki-20200201-pages-articles.xml.bz2

待抽取的原始zhwiki文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要训练一个语料库,我们需要首先准备好语料库数据。在这里,我们将使用中文维基百科作为我们的语料库。以下是训练word2vec模型的步骤: 1. 下载维基百科语料库 中文维基百科提供了一个XML格式的数据库备份,可以从这里下载:https://dumps.wikimedia.org/zhwiki/latest/。请注意,这个文件很大,大约有5GB左右。下载后,您需要解压缩并将XML文件存储在本地文件夹中。 2. 清理维基百科语料库 由于维基百科包含大量的HTML标记,我们需要对其进行清理。我们可以使用Python中的BeautifulSoup库来进行清理。以下是一些示例代码: ```python from bs4 import BeautifulSoup import codecs # 读取维基百科XML文件 wiki_file = codecs.open("zhwiki-latest-pages-articles.xml", 'r', 'utf-8') # 创建BeautifulSoup对象并查找所有的text标签 soup = BeautifulSoup(wiki_file, 'html.parser') docs = soup.find_all('text') # 清理标点符号和数字 import re def clean_text(text): # 去除标点符号和数字 text = re.sub(r'[^\u4e00-\u9fa5]', '', text) return text # 将所有文档添加到列表中 cleaned_docs = [] for doc in docs: cleaned_doc = clean_text(doc.get_text()) cleaned_docs.append(cleaned_doc) ``` 3. 分词 接下来,我们将对每个文档进行分词。我们可以使用jieba库来进行中文分词。以下是一个示例代码: ```python import jieba # 分词函数 def tokenize(text): words = jieba.cut(text) return [word for word in words] # 将每个文档分词并添加到列表中 tokenized_docs = [] for doc in cleaned_docs: tokenized_doc = tokenize(doc) tokenized_docs.append(tokenized_doc) ``` 4. 训练Word2Vec模型 我们现在已经准备好训练word2vec模型了。我们可以使用gensim库来进行训练。以下是一个示例代码: ```python from gensim.models import Word2Vec # 训练Word2Vec模型 model = Word2Vec(tokenized_docs, size=300, window=5, min_count=5, workers=4) # 保存模型 model.save("zhwiki_word2vec.model") ``` 在上面的代码中,我们指定了一些参数来训练模型。例如,我们将词向量的维度设置为300,窗口大小设置为5,最小计数设置为5等等。您可以根据您的需要进行设置。 5. 使用Word2Vec模型 现在我们已经训练好了Word2Vec模型,我们可以使用它来查找相似的词语或计算词语之间的距离。以下是一个示例代码: ```python # 加载模型 model = Word2Vec.load("zhwiki_word2vec.model") # 查找相似的词语 similar_words = model.wv.most_similar("中国") print(similar_words) # 计算词语之间的距离 distance = model.wv.distance("北京", "上海") print(distance) ``` 在上面的代码中,我们加载了训练的模型,并使用它来查找与“中国”最相似的词语,以及计算“北京”和“上海”之间的距离。 希望这个实践指南对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值