【问题标题】:Features of vector form of sentences for opinion finding.用于意见发现的句子向量形式的特征。
【发布时间】:2016-11-21 06:23:18
【问题描述】:

我想找到一个句子的正面或负面意见。例如只讲一句话。

The play was awesome

如果改成矢量形式

[0,0,0,0]

通过词袋搜索后

bad
naughty
awesome

向量形式变为

[0,0,0,1]

其他句子也一样。现在我想将它传递给机器学习算法进行训练。 如何使用这些多个向量训练网络?(用于寻找未见句子的意见)显然不是!因为输入在神经网络中是固定的。有什么办法吗?以上程序只是我的想法。如果我错了,请纠正我。提前致谢。

【问题讨论】:

    标签: machine-learning nlp neural-network word2vec


    【解决方案1】:

    因为您的直观输入格式是“句子”。这确实是一串具有 任意 长度的标记。对于许多现有算法仅适用于确定的输入格式,将句子抽象为标记系列并不是一个好的选择。

    因此,我建议尝试在整个训练集上使用 tokenizer。这将为您提供字典长度的向量,该向量对于给定的训练集是固定的。

    因为当句子的长度变化很大时,字典的大小总是保持稳定。

    然后您可以将神经网络(或其他算法)应用于标记化向量。

    但是,tokenizer 生成的向量非常稀疏,因为您只处理句子而不是文章。

    您可以尝试LDA(监督,而不是PCA),以减小维度并放大差异。

    这将保留您的训练数据的基本信息,并以固定大小表示您的数据,而这个“大小”不会太大。

    顺便说一句,您可能不必根据每个词的态度来标记每个词,因为一个句子的观点也取决于其他类型的词。

    关于表达意见的单词数量的简单算术会使您的模型高度偏颇。更好地标记句子并将其余工作留给分类器。

    为了混乱

    PCA 和 LDA 是降维技术。 difference

    假设每个样本元组都表示为x(1×p 向量)。

    p 太大了,我们不喜欢这样。

    让我们找到一个矩阵 A(p-by-k),其中 k 非常小。

    所以我们得到reduced_x = x*A,最重要的是,reduced_x 必须 能够代表x的字符。

    给定标记数据,LDA 可以提供适当的 A,可以最大化 不同类别的reduced_x 之间的距离,并最小化 同一类内的距离。

    简单来说:压缩数据,保存信息。

    当你有 reduced_x,您可以定义训练数据:(reduced_x|y) 其中 y 是 0 或 1。

    【讨论】:

    • 感谢您的高度评价。我没看懂1.NN在你的句子中Then you can apply NN to the tokenized vectors.是什么NN2. LDA 会做什么? 3. 如果我标记句子进行训练。它将如何有益?例如:我有 10 个单词的字典,句子 I love my cat (Pos) 变成 [0,0,0,0,0,1,0,0,0,0] (Love=1) 我应该如何处理作为句子标签的 (Pos)
    • 请看一下补充资料。此外,当您的 dict size 为 10 时,句子可能看起来像 [0,0,1,1,1,0,0,0,1,0],因为您的句子包含 4 个单词。
    • 如果您对机器学习不是很熟悉,建议您阅读一些书籍或尝试一些 Coursera 课程,以系统地了解数据预处理\标签\建模...基本的混乱。希望这会有所帮助。
    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2016-06-29
    • 2019-09-24
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多