如何修改 word2vec 代码以构建制表符分隔的短语序列的嵌入?

How to modify word2vec code to build embedding for tab-delimited sequence of phrases?

给定的文本文件包含以下行:

Phrase foo\tPhrase bla\tPhrase blabla\t...
Phrase bar\tPhrase blabla\tPhrase blablabla\t...

其中每个文本行都是制表符分隔的短语序列,其中可以包含 space 和其他特殊字符。我们感兴趣的是短语级别的嵌入,而不是单词级别。

当前word2vec.c支持"space"、"tab"、"new line"作为分隔符。在这种情况下,如何禁用 "space" 并仅启用 "tab" 和 "new line" 作为 word2vec.c 中的分隔符?

我从 Tomas Mikolov GitHub

那里得到了 word2vec.c

https://github.com/tmikolov/word2vec/blob/20c129af10659f7c50e86e3be406df663beff438/word2vec.c#L80定义了word2vec.c中的分隔符;如果您正在编译该文件,则可以编辑该行并重新编译以使其表现不同。

但是,如果您简单地预处理您的文本以将其转换为预期的形式,它会更容易和更强大(如果您实际上正在使用其他一些 word2vec 实现)。例如,您可以将所有 spaces ' ' 更改为下划线 '_'(或其他一些插入字符,如果任何原始下划线对保持不同很重要)。

稍后解释结果时,请记住在查找时应用相同的 space 到下划线转换,或者通过将下划线替换为 space 来反转它以显示结果。