6

我想知道是否有针对此的 NLP/ML 技术。

假设给定一组句子,

  1. 我看了电影。
  2. 听说电影不错,一定要看。
  3. 拿到了电影票。
  4. 我在看电影。

如果我必须为这些句子中的每一个分配一个概率,即他们“实际上”看过这部电影,我会按 1、4、3、2 的递减顺序分配它。

有没有办法使用一些分类器或规则自动执行此操作?任何文件/链接都会有所帮助。

4

3 回答 3

6

这些是文本蕴涵中的常见问题。我会推荐你​​看一些论文。虽然他们的动机是文本蕴涵,但我相信你的问题应该比这更容易。

确定文本蕴涵的模态和真实性

学习识别有效文本蕴涵的特征

其中一些建议应该可以帮助您决定排名时要考虑的一些功能/关键字。

于 2012-04-22T03:53:18.547 回答
2

除 1 外,其他陈述均未必然暗示此人已观看电影。他们本可以为其他人买票(3),也可能是在大厅外卖爆米花的人(4)。我认为没有任何聪明的系统可以在每个句子的行之间阅读并返回与您的直觉完全一致的答案(顺便说一句,这可能与其他人的同一句话不同)。

如果这奇怪的是您关心的唯一情况(如果您明确处理电影评论,这可能),那么可能值得您花时间将大量启发式拼凑在一起,从而产生一个几乎完全一致的函数凭你的直觉。

否则,在这些句子起源的所有其他句子中寻找可用的上下文以找到相关线索。真正看过这部电影的人可能会评论他们喜欢它,对电影中的特定场景、角色和演员等发表意见。所以如果文本中包含很多情绪高昂的句子,并且指的是电影中的单词和短语,那么这个人可能已经看过这部电影。如果很多都是将来时,那么也许不是。

于 2012-04-22T01:13:26.727 回答
2

如果您正在使用特定域,例如“是否看过电影”,或者更一般地说“是否参加过活动”,这基本上是文本分类任务的一个案例。

NLP 中的常用方法是使用大量标记为已观看或未观看的句子来训练基于机器学习的分类器。最常用的特征是关键字、bigrams(2 个单词的序列)和 trigrams(3 个单词的序列)的存在/不存在。

既然你谈到了概率,事情可能会变得更复杂一些。正如 adi92 所指出的,在您的 3 句话中,答案并不清楚。在训练数据中表示这一点的一种方法可能是,一个有 0.3 概率的句子出现 3 次被标记为已观看,7次被标记为观看。大多数分类器可以轻松地将其输出转换为概率。

无论如何,我认为主要的困难是为该任务创建一个训练数据集。

于 2012-04-27T23:50:16.383 回答