Sah*_*hil 49 nlp vector word2vec
我们有用于将单词转换为向量的模型(例如word2vec模型).是否存在将句子/文档转换为向量的类似模型,可能使用为单个单词学习的向量?
alv*_*vas 17
这完全取决于:
如果您使用Word2Vec生成模型,则可以尝试:
或者你可以做一些人做的事情,即汇总文件中的所有内容词并除以内容词,例如https://github.com/alvations/oque/blob/master/o.py#L13(注意:行17-18是减少噪音的黑客攻击):
def sent_vectorizer(sent, model):
sent_vec = np.zeros(400)
numw = 0
for w in sent:
try:
sent_vec = np.add(sent_vec, model[w])
numw+=1
except:
pass
return sent_vec / np.sqrt(sent_vec.dot(sent_vec))
Run Code Online (Sandbox Code Playgroud)
lar*_*ars 15
现成的解决方案稍微少一点,但如果您有特定的事情要做,可能在准确性方面难以击败:
构建一个RNN(使用LSTM或GRU存储单元,在此比较)并优化您要完成的实际任务的错误功能.你喂它的句子,并训练它产生你想要的输出.在输入你的句子之后激活网络是句子的表示(尽管你可能只关心网络输出).
您可以将句子表示为一个热门编码字符序列,一个热门编码字序列,或一个字向量序列(例如GloVe或word2vec).如果你使用单词向量,你可以保持反向传播到单词向量,更新它们的权重,这样你也可以获得专门为你正在进行的任务调整的自定义单词向量.
Meh*_*hdi 14
有很多方法可以回答这个问题.答案取决于你对短语和句子的解释.
这些分布式模型(例如word2vec为每个单词提供向量表示)只能显示单词通常如何在与其他单词相关的基于窗口的上下文中使用.基于对上下文 - 单词关系的这种解释,您可以将句子中所有单词的平均向量作为句子的向量表示.例如,在这句话中:
素食主义者吃蔬菜.
我们可以将归一化向量作为向量表示:
问题在于句子的组成性质.如果你采用上面的平均单词向量,这两个句子具有相同的向量表示:
蔬菜吃素食主义者.
通过语料库处理学习树结构的分布式方法有很多研究.例如:解析与组合矢量语法.这段视频也解释了这种方法.
我想再次强调解释.这些句子向量可能在您的应用程序中有其自己的含义.例如,在斯坦福大学这个项目的情感分析中,他们寻求的意思是句子的正面/负面情绪.即使你找到一个句子的完美向量表示,也有哲学辩论,如果你不能判断真实条件,这些不是句子的实际意义(David Lewis"General Semantics"1970).这就是为什么有一些专注于计算机视觉的作品(本文或本文).我的观点是它完全取决于你的应用和向量的解释.