斯坦福手套没有标点符号?

Posted

技术标签:

【中文标题】斯坦福手套没有标点符号?【英文标题】:Stanford GloVe's lack of punctuation? 【发布时间】:2015-10-21 00:01:59 【问题描述】:

我知道GloVe 通过注意经常同时出现的内容等来训练向量,但是为什么不包括逗号和句点?对于任何 NLP 来说,具有向量表示似乎是一个重要特征。我意识到像 (king - man = queen) 这样的东西对 (word - , = ?) 没有意义,但是有没有办法表示标点符号和数字?

是否有包含此类内容的预制数据集?这甚至会起作用吗?

我尝试使用自己的数据集训练 GloVe,但遇到了分隔单词之间的标点符号(带有空格)等问题。

【问题讨论】:

【参考方案1】:

将标点符号作为词向量生成的单个标记处理是完全可以的,也很常见。另见例如 word2vec 论文。我假设预建的 word2vec 数据集有标点符号。而且我确信预先构建的手套向量也有标点符号。

有很多分词器将标点符号分隔为单独的单词。我肯定知道的是 ARK Tweet Tokenizer。

【讨论】:

【参考方案2】:

我对 Senna 使用的词向量进行了一些研究,我正在查看词汇表。

http://ml.nec-labs.com/senna/

我确实看到了标点符号条目。

处理数字的一个技巧是用 0 替换每个数字,然后学习每个模式的分布。例如 1999 映射到 0000,01-01-2015 映射到 00-00-0000 等等...

Senna 有这些模式的条目,例如 0000 等...

我会查看 GloVe 并尝试尽快更新此答案...

【讨论】:

【参考方案3】:

预训练的 GloVe 向量确实有标点符号,是什么让您认为它们没有?至少 Wikipedia 2014 + Gigaword 5 (6B tokens) set from http://nlp.stanford.edu/projects/glove/ 包含 ", ".", "-" 和其他的嵌入,只需下载这些词向量,并自行验证,它们是纯文本格式,所以很容易做到。

【讨论】:

啊,好吧,我用的是text8默认训练集【参考方案4】:

我使用过这种数字和标点符号的转换。这不是一个好方法,但稍微有用。

对于数字,我将所有数字转换为 "NUM"例如: 178 = "NUM"654 = "NUM"

对于标点符号,我将它们转换为“PUNC”。例如: apple, orange, banana = apple "PUNC" orange "PUNC" banana

这不是一个好的解决方案,但可以通过某种方式解决。

【讨论】:

以上是关于斯坦福手套没有标点符号?的主要内容,如果未能解决你的问题,请参考以下文章

斯坦福-随机图模型-week1.4_

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达 Andrew Ng)

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达 Andrew Ng)

普朗克的司机

英语中都有哪些标点符号

如何通过 scanf() 读取没有标点符号的字符串?