Algorithm 机器学习:表示单词特征的好方法

Algorithm 机器学习:表示单词特征的好方法,algorithm,machine-learning,Algorithm,Machine Learning,不太确定这是不是合适的地方。。 但这是我的问题。 因此,对于本质上是数字的特征,表示它们、绘制它们等都是很自然的,但是单词呢 在以文字为特征的情况下,如何处理数据?假设我有一个具有以下特性的数据集: InventoryVal, Number of Units, Avg Price, Category of Event and so on.. InventoryVal是一个数字 单位数是一个数字 平均价格是一个数字 事件的类别是由人类指定的一个词 事件,如果我用id替换类别(示例)“book

不太确定这是不是合适的地方。。 但这是我的问题。 因此,对于本质上是数字的特征,表示它们、绘制它们等都是很自然的,但是单词

在以文字为特征的情况下,如何处理数据?假设我有一个具有以下特性的数据集:

InventoryVal, Number of Units, Avg Price, Category of Event and so on..
  • InventoryVal是一个数字
  • 单位数是一个数字
  • 平均价格是一个数字
  • 事件的类别是由人类指定的一个词
事件,如果我用id替换类别(示例)“books”。。。。。。(比如说1)但这也是我分配的东西,不是数据本身的东西

在没有人为分配任何东西的情况下,什么是表示产品属于“艺术”类别的好指标?
啊。。太模糊或措辞松散的问题?/

因此,正如您可能已经猜到的,有整个ML库都指向这个问题,但是如果您只是想开始,最简单的(可能也是最常见的)是词频。换句话说,您将每个单词表示为一个特征,其值是单词在每个文档中出现的次数的函数

但最常见的单词(a、and、the、this等)是最常见的(在普通文本文档(如电子邮件)中),但几乎不是最重要的,因此通常将单词特征表示为其频率的倒数

同样,这是最简单的方法(单词袋通常指的是单词袋);更复杂的分析(并不总是需要)对单个单词进行预处理,将其分类为词类分析


如果您喜欢python,我建议(自然语言工具包)是一个成熟且文档丰富的python库。有很多“入门”教程,但可能从NLTK贡献者创建的、在NLTK主页上引用的教程开始;这些教程通常依赖于语料库(数据集)包含在基本NLTK安装中。

如果您使用的是现有的机器学习软件包或打包的机器学习算法,可能会有一种方法告诉它某个特定字段包含例如要作为标识符处理的整数,其中只有相等和不相等的比较才有意义。如果没有,则只有sm所有不同类别的数量,用10个二进制字段替换10个值的类别字段可能是有意义的,如果对象在该特定类别中,则保留1;如果对象不在该类别中,则保留0(或9个字段,如果对象全部为0,则保留第10个类别).

只使用反向频率并不一定是一个好方法。过滤掉“停止词”(a、and、the等)列表是另一种方法。TF-IDF()是另一种流行的方案,它将术语(单词)频率除以单词出现在文档中的数量(IDF==反向文档频率)