c - 德语维基百科上的 Word2vec C++ 培训

标签 c word2vec

我正在使用 C 版本的 word2vec(在 https://code.google.com/archive/p/word2vec/ 中找到)并在德语版维基百科的过滤转储(约 17 GB 原始文本,约 1.4 B 词)上对其进行训练。我正在使用以下设置:

-cbow 1 -size 300 -window 5 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15 -min-count 1000

生成的输出文件包含约 50k 个单词,但它们都不包含字母 ä、ö、ü 或 ß。我验证了 word2vec 可以通过制作一个包含带有这些字母的单词的小语料库来处理它们,并且它们出现在输出中。

是什么导致包含这些字符的单词没有出现在输出文件中?它是否与大型语料库或我正在使用的任何设置有某种关系?

最佳答案

应该和语料库的大小没有关系。我在维基百科转储和德语新闻文章(词汇表中有 60 万个单词)上训练了一个具有类似设置的德语模型(参见下面的链接),并为带有德语变音符号的单词生成了单词 vector 。

你可以做的事情:

  • 检查你的语料库文件的字符编码以及你的训练环境是UTF-8
  • 通过在预处理中将变音符号转换为其各自的二元标记(ä → ae、ß → ss 等)来避免此问题
  • 查看 this project其中 word2vec 应用于德语语料库(但 gensim 使用 C 实现)

关于c - 德语维基百科上的 Word2vec C++ 培训,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42584519/

相关文章:

c - 如何读取程序参数

android - 在c编程中包含在android studio中不起作用的file.h(使用SDL2)

word2vec - 将句子转换为嵌入表示

machine-learning - Word2Vec 和 Glove 向量适合实体识别吗?

machine-learning - Spark MLLib的Word2Vec余弦相似度大于1

c++ - ##(双哈希)在预处理器指令中做了什么?

c - 使用 Intel MKL 的 3D 卷积

我可以使用线程来更改 GTK 镜像吗?

nlp - 如何将单词嵌入向量组合为一个向量?

machine-learning - 预测中间词 word2vec