我正在尝试使用预先训练的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向量嵌入与空字符串或平均向量相关联,但是我不认为这两者都有意义,因为嵌入操作是非线性的。
答案 0 :(得分:1)
在FastText中,句子嵌入基本上是单词向量的平均值,如FastText papers之一所示:
鉴于这一事实,零可能是一个合理的选择。但是,答案取决于您要如何处理嵌入。
如果将它们用作分类器的输入,则可以选择一个任意向量作为空字符串的表示,分类器将了解其含义。 FastText还为</s>
(即句子结尾)学习特殊的嵌入。这是嵌入空字符串的另一种自然选择,特别是如果您进行相似性搜索。