替换空文本-文本嵌入

时间:2019-04-28 12:17:31

标签: machine-learning nlp artificial-intelligence text-classification fasttext

我正在尝试使用预先训练的fastText模型嵌入文本。有些是空的。如何替换它们以使嵌入成为可能?我正在考虑用伪单词代替它们(文档是pandas DataFrame对象):         // ArticleCard.js import React from "react" import styled from "styled-components" import Link from "next/link" const StyledCard = styled.div` display: flex; flex-direction: column; border-radius: 3px; text-align: left; margin-bottom: 2rem; :hover { cursor: pointer; } ` const Title = styled.h1` font-size: 1.5rem; color: white; font-weight: 300; margin: 0; ` const Description = styled.p` font-size: 1.2rem; color: white; ` const ArticleCard = (props) => { const { title, description, path } = props.article return ( <Link href={{ pathname: path }}> <StyledCard> <Title>{title}</Title> <Description>{description}</Description> </StyledCard> </Link> ) } export default ArticleCard

但是,由于这个词的选择是任意的,并不等同于拥有一个空字符串,所以这实际上没有意义。

否则,我可以将0向量嵌入与空字符串或平均向量相关联,但是我不认为这两者都有意义,因为嵌入操作是非线性的。

1 个答案:

答案 0 :(得分:1)

在FastText中,句子嵌入基本上是单词向量的平均值,如FastText papers之一所示:

FastText figure

鉴于这一事实,零可能是一个合理的选择。但是,答案取决于您要如何处理嵌入。

如果将它们用作分类器的输入,则可以选择一个任意向量作为空字符串的表示,分类器将了解其含义。 FastText还为</s>(即句子结尾)学习特殊的嵌入。这是嵌入空字符串的另一种自然选择,特别是如果您进行相似性搜索。