Stanford GloVe缺少标点符号?

时间:2015-07-29 20:02:39

标签: machine-learning nlp stanford-nlp

我理解GloVe通过注意经常共同发生的事情等来训练向量,但是如何不包括逗号和句号?对于任何NLP,似乎具有矢量表示是一个重要的特征。我意识到像(王 - 男=女王)这样的东西(词 - ,=?)是没有意义的,但有没有办法表示标点符号和数字?

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

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

4 个答案:

答案 0 :(得分:2)

我已经使用了Senna使用的单词vector,我正在查看词汇表。

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

我肯定会看到标点符号的条目。

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

塞纳有这些模式的条目,如0000等......

我将查看GloVe并尽快更新此答案......

答案 1 :(得分:2)

预先训练过的GloVe载体确实有标点符号,是什么让你觉得它们不是?至少来自http://nlp.stanford.edu/projects/glove/的Wikipedia 2014 + Gigaword 5(6B令牌)嵌入了#34;,#34; "。"," - "和其他包括,只需下载这些单词向量,并验证它yourseld,它们是纯文本格式,所以它很容易做到。

答案 2 :(得分:0)

将标点符号作为单个标记用于生成单词矢量也是完全正常的。另请参阅word2vec论文。我假设预构建的word2vec数据集有标点符号。而且我确信预制的手套矢量也有标点符号。

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

答案 3 :(得分:0)

我已经使用了这样的数字和节拍的对话。这不是一个好方法,但稍微有用。

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

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

这不是一个好的解决方案,但无论如何都有效。