除了Bag Of Words(TF-IDF)之外,将文本特征转换为数字特征的方法有哪些?

时间:2015-09-04 04:22:17

标签: machine-learning nlp random-forest tf-idf

这些天我一直致力于自然语言处理。我的目的是根据一些标准对罗马剧本中的多语言句子中的不同单词进行分类。因此,我需要一个分类器。毫无疑问,有很多。但由于我的特征不是数字但是文本,并且大多数分类器如支持向量机(SVM)输入数字特征,我寻找一些方法将我的文本特征转换为数字特征。虽然使用术语频率和反文档频率(TF-IDF)的Bag Of Words的概念是用于此目的的通用方法,但我的一个文本特征,即本地上下文,具有固定长度,我想知道是否可以在不使用TF-IDF的情况下将其转换为数字特征。局部上下文特征指的是考虑前两个和后两个单词(其包括特定单词的上下文)。因此,我正在寻找在这种情况下可以证明更好的任何其他方法。我在Cross Validated here找到了类似的查询,但这是用于文档聚类,我想将单个单词分类到不同的类中。我还在quora上找到了一个类似question的类似答案。

为了实现我的目的,我希望将文本特征转换为数字特征或将文本特征作为输入的分类器。有没有人可以帮助我...

3 个答案:

答案 0 :(得分:0)

你当然不必将TF-IDF与单词包一起使用(例如,简单的计数向量就可以使用),但它的目的是帮助选择在分类中最有用的单词。

如果没有关于您试图制作的分类的更多信息,帮助有点困难,但是其他一些方法可能是查看单词周围的n-gram,对周围单词进行情感分析,或者使用LDA提取单词的主题分布,并将这些向量用作要素。 (这些都是将文本数据转换为有用的数字特征的方法 - 没有真正的分类器可以处理原始文本。)

答案 1 :(得分:0)

基本上,一个词袋是文本的表示。

要表示,您可以使用字母包,字母n-gram或类似的东西。另一个想法是通过查看他们的左右邻居(表示为词袋)对单词进行分类。

答案 2 :(得分:0)

问题是,我如何列举可能的输入?这是一种罕见的情况,真正的唯一真正的限制是你的想象力#34;。但一个简单的方法是只对可能的排列进行编目,并为每个排列分配一个数字。

使用一个非常小的词典,你可以为词典中单词的每个可能排列分配一个数字。如果您的词汇量是{' bag',' of',' words'},您可以指定数字

1 bag
2 of
3 words

也许还有一些可以满足空位。但是对于一本大字典来说,显然这是不可行的。也许如果你改为为每个单词分配一个数字标识符:

001 bag
010 of
100 words

然后你可以做一些像(1 * 100)+(2 * 10)+(1 * 3)这样的东西来获得排列的数字123"包的单词&#34 ;。或者,如果您想强调上下文,可以指定二进制特征,并将乘数应用于中心词:

{{1}}

将获得(1 * 001)+(1000 * 010)+(1 * 100) = 010101 = 21的头字''被领先的环境所包围' bag'和尾随的上下文'单词'。

有意义取决于您的申请。很容易想出小众应用程序,可以计算字母 b 或其他任何内容的出现次数,并直接使用您感兴趣的度量标准作为标识符