Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

北京交通大学NLP课程词向量实验

注:

代码写的有些冗余,orz。打算使用 TensorFlow 2.0 进行重构,但是最近也有些忙,希望可以在 25 年 1 月份完成,orz。

北京交通大学自然语言处理课程词向量实验,不调包实现 Word2Vec,实验所需的语料库为维基百科中文语料库

本次实验基于 TensorFlow V1 版本编码实现,参考了《TensorFlow 实战》书本以及其他相关内容教程和公开代码。具体可见我的个人博客:NLP 第一次实验 - Ther's World (excelius.xyz)(待完善!)

训练完成的词向量保存到本地的pkl文件中,为了方便上传,已经压缩打包,如果想直接使用还请解压。

Contributors Forks Stargazers Issues MIT License

目录

代码运行环境

Python版本:

​ Python 3.9.19

所需相关库:

  • gensim==4.3.3
  • jieba==0.42.1
  • matplotlib==3.9.2
  • numpy==2.1.2
  • OpenCC==1.1.9
  • scikit_learn==1.5.2
  • tensorflow==2.17.0
  • tensorflow_intel==2.17.0

​ 已导出requirement.txt文件,可以使用pip install -r requirements.txtconda install --yes --file requirements.txt命令一键安装相关的库;或安装相关库。

​ 建议使用 anaconda 管理 Python 环境,创建本项目的环境安装好相应的库再运行以下步骤。

安装步骤

  1. 配置实验运行环境
  2. 克隆项目
git clone https://github.com/Excelius-Wang/NLP_exp_1.git

bz2文件转txt文件

​ 在本项目的路径下打开命令行,激活已配置好的 Python 环境,使用命令:

python wiki_xml_to_txt.py zhwiki_xml.bz2

​ 其中 zhwiki_xml.bz2 为本地下载完成的 wiki 语料库文件。

​ 生成 wiki_text.txt 文件位于项目根目录/data/txt/wiki_text.txt

语料库预处理

​ 当 bz2 文件转换为 txt 文件后,运行下一步的语料库预处理文件,使用以下命令:

python text_pre_progress.py

​ 该命令会自动读取上一步中的data/txt/wiki_text.txt文件,生成data/txt/pre_simp_wiki_text.txt文件。

分词

​ 完成文件预处理操作后,使用以下命令完成分词操作:

python word_segment.py

​ 该命令会读取上一步生成的data/txt/pre_simp_wiki_text.txt文件,进一步生生成data/txt/wiki_seg.txt

模型训练

​ 模型训练可以尝试在本机也可以尝试在 Google Colab 上运行,若在 Colab 上运行建议使用 TPU,否则可能爆显存。

​ 这里建议使用 Pycharm 打开项目(需要配置 Python 解释器即先前创建的 Python 环境),若在本机完成,打开CBOW_TF.pySkip-Gram.py文件,直接 右键文件空白处 -> 运行 即可。若本机训练完成,对应的pkl文件位于data文件夹中。

​ 如果使用 Colab,需要挂在自己的 Google 云盘,在 Google 云盘里创建data/txt/文件夹,将wiki_seg.txt上传至内,或者修改代码里的文件路径。代码运行可以直接上传相应的 .ipynb 文件并运行,也可以复制相应的代码,复制到一个空的代码行,再运行即可。Colab 中使用 TPU V2-8 的运行时间在 40min(CBOW)与 1.5h 左右(Skip-Gram),消耗大概在 15-30 之间。对应的pkl文件保存在 Google 云盘的 data文件夹中。

模型验证

​ 首先需要把模型训练完成后的embedding_cbow_80w.pklembedding_skip_gram_80w.pkl文件放在data文件夹中。然后在 Pycharm 中打开verification.py,右键 -> 运行即可。

词向量二维展示

​ 同样需要把模型训练完成后的embedding_cbow_80w.pklembedding_skip_gram_80w.pkl文件放在data文件夹中。然后在 Pycharm 中打开visualize.py,右键 -> 运行即可。会生成 4 个本地 pdf 文件供更加方便浏览,也可以在对应的 plot 绘图窗口查看。

作者

Ther's World (excelius.xyz)

邮箱:excelius@qq.com

您也可以在贡献者名单中参看所有参与该项目的开发者。

版权说明

该项目签署了MIT 授权许可,详情请参阅 LICENSE.txt

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages