【发布时间】:2010-10-09 09:59:03
【问题描述】:
二值化是将实体的彩色特征转换为数字向量(通常是二进制向量)的行为,以便为分类器算法提供良好的示例。
如果我们在哪里对句子“The cat ate the dog”进行二值化,我们可以首先为每个单词分配一个 ID(例如 cat-1、ate-2、the-3、dog-4),然后简单地替换单词的 ID 给出向量 。
给定这些 ID,我们还可以通过为每个单词赋予四个可能的槽位并将与特定单词对应的槽位设置为 1 来创建二进制向量,从而给出向量 。后一种方法,据我所知,通常被称为词袋法。
现在我的问题是,在描述自然语言处理的一般特性和基于转换的依赖解析(使用 Nivres算法)特别是?
在这种情况下,我们不想对整个句子进行编码,而是要对解析的当前状态进行编码,例如堆栈上的顶部单词和输入队列中的第一个单词。由于顺序是高度相关的,这排除了词袋方法。
best,我指的是使数据对分类器最易理解的方法,而不会占用不必要的内存。例如,我不希望一个单词 bigram 使用 4 亿个特征来处理 20000 个独特的单词,如果实际上只有 2% 的 bigrams 存在的话。
由于答案也取决于特定的分类器,我最感兴趣的是最大熵模型 (liblinear)、支持向量机 (libsvm) 和感知器,但也欢迎适用于其他模型的答案。
【问题讨论】:
-
我不知道二值化是什么,而且我敢肯定很多其他人都在同一条船上,所以如果你能解释一下你对我们这些人的意义,那就太好了不熟悉 NLP 的人(如果不是为了帮助我们回答,至少是为了帮助理解该主题)。
-
这里一样——你能定义二值化吗?
-
也许您可以定义“最佳”的含义,即最节省空间、最高效处理、最具描述性。
-
我认为很明显,最节省空间的方法可能是对大多数分类器进行模糊处理,只要您不截断我不想这样做的数据,所有表示都会就像描述一样。至于处理效率,目前这不是问题……
标签: machine-learning nlp classification libsvm