4

一般来说,我在机器学习和文本挖掘方面相当陌生。我注意到存在一个名为 Liblinear https://github.com/tomz/liblinear-ruby-swig的 ruby​​ 库。

到目前为止,我想做的是训练软件识别文本是否提到与自行车相关的任何内容。

有人可以突出我应该遵循的步骤(即:预处理文本和如何),共享资源并理想地分享一个简单的例子来让我继续前进。

任何帮助都可以,谢谢!

4

1 回答 1

2

经典的方法是:

  1. 收集输入文本的代表性样本,每个都标记为相关/不相关。
  2. 将样本分成训练集和测试集。
  3. 提取训练集所有文档中的所有词条;将此称为词汇表V
  4. 对于训练集中的每个文档,如果词汇表中的第i个术语出现在文档中,则将其转换为布尔向量,其中第i个元素为真/1 。
  5. 将矢量化训练集馈送到学习算法。

现在,要对文档进行分类,请按照步骤 4 对其进行矢量化处理。并将其提供给分类器以获得相关/不相关的标签。将此与实际标签进行比较,看看它是否正确。使用这种简单的方法,您应该能够获得至少 80% 的准确度。

要改进此方法,请将布尔值替换为按文档长度归一化的术语计数,或者甚至更好的tf-idf分数。

于 2011-05-24T21:01:06.573 回答