首页 文章

使用清理数据中的代理句子

提问于
浏览
0

Gensim的 Word2Vec 模型将列表列表作为输入,内部列表包含句子的单个标记/单词 . 据我所知, Word2Vec 用于使用向量在文本中使用单词的上下文 . 我目前处理的文本语料库已被拆分为单独的令牌,不再包含明显的句子格式(标点符号已被删除) . 我想知道如何将其输入到 Word2Vec 模型中?

假设我只是将语料库分成均匀长度的“句子”(例如每个句子10个标记),这是将数据输入模型的好方法吗?

基本上, I am wondering how the format of the input sentences (list of lists) affects the output of Word2Vec?

2 回答

  • 1

    这听起来像是合理的解决方案 . 如果您可以访问与清理数据类似的数据,则可以从该数据集中获得平均句子长度 . 否则,您可以使用您正在使用的语言(来自维基百科或其他来源)找到其他数据,并从那里获得平均句子长度 .

    当然,你的输出向量不会像你有正确的句子边界一样可靠,但听起来像是保留了单词顺序,所以不应该有不正确的句子边界的噪音 .

  • 1

    最典型的是,文本以逻辑单位(如句子或段落)传递给 Word2Vec . 此外,已发表的论文和早期演示代码也倾向于将标点符号转换为标记 .

    但是没有标点符号的文本以及文本之间的任意中断是一种合理的解决方法,并且仍然可以提供相当好的结果 .

    例如,经常在演示中使用的 text8 / text9 语料库(包括word2vec intro Jupyter notebook bundled in gensim)只是一个巨大的单词运行,缺少标点符号和换行符 . 因此,gensim中使用的实用程序 LineSentence 类会将它们分解为单独的10,000个令牌文本 .

    由于以下几个原因,最好在你的任意休息时间(例如10,000)中变大,而不是更小(例如10):

    • 源文本通常超过10个单词

    • 经常在一起运行的源材料在其原始边界上仍然是语义相关的

    • 优化算法在更大的数据块上工作得更好

    • "false context windows"(由连接创建)的危害可能只是没有净偏置效应的噪声,而更多"true windows"(通过创建尽可能少的错误分裂)可能保留更多的原始语料库'可学习的单词到单词关系信号

    • 你总是可以使用较小的 window 参数来模拟更保守的上下文(如果原始源确实具有与顺序无关的小句子)

    但是,gensim的cython优化培训路径每个文本的实施限制为10,000个令牌 - 不再被忽略 - 所以你不会故意想要出于任何原因提供更长的文本 .

相关问题