技术应用:word2vec实验

数据来源

中文维基百科数据下载:
zhwiki-latest-pages-articles.xml.bz2
enwiki-latest-pages-articles.xml.bz2

抽取文章正文

  • Ubuntu 18
  • Python 3
sudo apt-get install python3-pip
pip3 install setuptools
git clone https://github.com/attardi/wikiextractor.git
cd wikiextractor/
sudo python setup.py install
python3 wikiextractor/WikiExtractor.py -b 1000M -o result.txt zhwiki-latest-pages-articles.xml

分词

这里我们使用HanLP进行的分词

注意:需要将繁体中文转换成简体中文, 然后进行分词

计算模型

注意:需要下载并编译好环境

./word2vec -train tt.txt -output vectors.bin -cbow 1 -size 80 -window 5 -negative 80 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15

  • tt.txt是刚才分词后的输出文件
  • vectors.bin是训练后输出的文件
  • cbow 0表示不使用cbow模型,默认为Skip-Gram模型。
  • size 80 每个单词的向量维度是80,
  • window 5 训练的窗口大小为5就是考虑一个词前五个和后五个词语(实际代码中还有一个随机选窗口的过程,窗口大小小于等于5)。
  • negative 0 不适用NEG方法
  • hs 1 不使用NEG方法,使用HS方法。
  • sampe指的是采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。
  • binary为1指的是结果二进制存储,为0是普通存储(普通存储的时候是可以打开看到词语和对应的向量的)。

验证模型

训练完成后,执行命令:
./distance vectors.bin

posted @   duchaoqun  阅读(278)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示