如何构建一个模型来区分有关 Apple (Inc.) 的推文和有关 Apple (水果) 的推文?

请参阅下面的50条关于“苹果”的推文。我已经手工标记了关于苹果公司的积极匹配。它们在下面标记为 1。

以下是几行:

1|“@chrisgilmer: Apple targets big business with new iOS 7 features http://bit.ly/15F9JeF ”. Finally.. A corp iTunes account!
0|“@Zach_Paull: When did green skittles change from lime to green apple? #notafan” @Skittles
1|@dtfcdvEric: @MaroneyFan11 apple inc is searching for people to help and tryout all their upcoming tablet within our own net page No.
0|@STFUTimothy have you tried apple pie shine?
1|#SuryaRay #India Microsoft to bring Xbox and PC games to Apple, Android phones: Report: Microsoft Corp... http://dlvr.it/3YvbQx  @SuryaRay

以下是总数据集:http://pastebin.com/eJuEb4eB

我需要构建一个对“Apple”(Inc)进行分类的模型。从其他人那里。

我不是在寻找机器学习的一般概述,而是在寻找代码中的实际模型(最好是Python)。


答案 1

您要查找的内容称为命名实体识别。它是一种统计技术,(最常见的)使用条件随机字段来查找命名实体,基于已接受培训以了解有关命名实体的知识。

从本质上讲,它查看单词的内容和上下文(向前和向前看几个单词),以估计该单词是命名实体的概率。

好的软件可以查看单词的其他特征,例如它们的长度或形状(如果以“元音-辅音-元音”开头,则为“Vcv”)

一个非常好的库(GPL)是斯坦福大学的NER

演示如下:http://nlp.stanford.edu:8080/ner/

可以尝试的一些示例文本:

我在苹果总部吃了一个苹果,我想起了苹果马丁,酷玩乐队的女儿。

(3类和4类分类器做对了)


答案 2

我会这样做:

  1. 将句子拆分为单词,对其进行规范化,构建字典
  2. 对于每个单词,存储它们在有关公司的推文中出现的次数,以及它们在有关水果的推文中出现的次数 - 这些推文必须由人类确认
  3. 当一条新推文出现时,在字典中找到推文中的每个单词,计算一个加权分数 - 与公司相关的频繁使用的单词将获得较高的公司分数,反之亦然;很少使用的单词,或者同时用于公司和水果的单词,不会有太大的分数。