1

这是我想在网上搜索一些东西但不知道它叫什么的情况。

我有一组文本文件中的职位描述,有些只有一两句话长,大多数只有一两段。我想写一个脚本,给定一组规则,当它找到我想要的工作描述时会通知我。

例如,假设我正在寻找一份 PHP 编程工作,但不是全职职位,也不是设计职位。所以我的“规则书”可能是:

want: PHP
want: web programming
want: telecommuting
do not want: designing
do not want: full-time position

我可以使用什么方法将这些文件分类为“通过”(与我正在寻找的描述匹配的描述)和“失败”(描述不相关)?我正在考虑的一些想法:

  • 计算文本文件中出现在我的“规则手册”中的短语的次数,并拒绝那些包含我不想要的单词的短语。但是,这并不总是有效,因为如果描述说“不需要网页设计”怎么办?然后我的算法会说“它包含这个词designing,所以它不相关”,而它真的是!
  • 在文本中搜索我想要和不想要的短语时,将一定 Levenshtein 距离内的短语计为相同的短语。例如,designingdesign应该以同样的方式处理,以及单词的拼写错误,例如programing.
  • 我有大量手动查看的描述。有没有办法我可以“教”程序“这些是好的描述的例子,这些是坏的例子”?

有谁知道这个“过滤过程”被称为什么,和/或对我如何完成这个有任何建议或方法?

4

1 回答 1

1

您基本上有文本分类文档分类问题。这是二元分类的一个特例,它本身就是一个监督学习的特例。. 这是一个很好研究的问题,有很多工具可以做到这一点。基本上,您将一组好文档和坏文档提供给学习或训练过程,该过程会找到与正面和负面文档密切相关的单词,并输出一个能够将看不见的文档分类为正面或非正面的函数。朴素贝叶斯是这类任务最简单的学习算法,它会做得不错。有更高级的算法,如逻辑回归和支持向量机,它们可能会做得更好,但它们更复杂。

要确定哪些变体词实际上彼此等价,您需要进行某种词干提取。Porter 词干分析器是这里的常见选择。

于 2013-05-11T14:49:51.257 回答