【发布时间】:2020-07-17 08:18:36
【问题描述】:
怀疑 - 1
我正在用 150000 个文档训练 Doc2Vec。由于这些文件来自合法领域,因此很难清理并为进一步培训做好准备。因此,我决定从文档中删除所有句点。话虽如此,我现在对doc2vec中Window_size的参数如何识别句子感到困惑。问题中有两种观点:Doc2Vec: Differentiate Sentence and Document
- 该算法仅适用于文本块,不知道句子/段落/文档等可能是什么。
- 标记化保留标点符号(例如句子之间的句点)作为独立标记甚至很常见。
因此,如果我采用的消除标点符号(句号)的方法是否正确,我会感到困惑。请给我一些支持性的答案。
疑点二
我抓取的文档范围从 500 到 5500 个标记,因此我使用相当大小的文档来训练 doc2vec 甚至减少词汇量的方法是: 考虑一个大小大于 1500 个标记的文档,在这种情况下,我使用前 50 到 400 个标记 + 600 到 1000 个标记 + 最后 250 个标记。这种方法的动机来自一篇与使用 BERT 对文档进行分类相关的论文,其中 512 个标记的序列是这样生成的。
所以我想知道这个想法是不是有点好,还是不建议这样做?
更新 - 我刚刚在教程链接https://radimrehurek.com/gensim/models/doc2vec.html 中看到了 gensim 使用的 common_text 语料库,发现该语料库中的文档只是单词的标记,不包含任何标点符号。 例如:
from gensim.test.utils import common_texts, common_dictionary, common_corpus
print(common_texts[0:10])
输出:
[['human', 'interface', 'computer'], ['survey', 'user', 'computer', 'system', 'response', 'time'], ['eps', 'user', 'interface', 'system'], ['system', 'human', 'system', 'eps'], ['user', 'response', 'time'], ['trees'], ['graph', 'trees'], ['graph', 'minors', 'trees'], ['graph', 'minors', 'survey']]
教程https://radimrehurek.com/gensim/auto_examples/tutorials/run_doc2vec_lee.html 也采用了同样的方法。 我在文档中删除句点的方法也是有效的,如果是,那么 window 参数将如何工作,因为在文档中它定义如下: window (int, optional) -- 句子中当前单词和预测单词之间的最大距离。
【问题讨论】:
标签: python gensim word2vec doc2vec