如何确定一段文字是否提及产品

时间:2015-06-03 19:55:26

标签: nlp

我是自然语言流程的新手,所以如果我的问题不清楚,我会道歉。我已经阅读了一两本关于这个主题的书,并对各种图书馆进行了一般性研究,以确定我应该如何做到这一点,但我还不知道该怎么做。

我正在尝试应用程序的想法,其中一部分是试图在非结构化文本(例如推文,Facebook帖子,电子邮件,网站等)中实时查找产品提及。我不会进入产品的内容,但可以假设它们是已知的(存储在文件或数据库中)。一些例子:

  • "从明天开始,我们有5盒@herheys窃笑员每人5美元 - 限制1 pp" (士力架是来自hershey公司的产品[提到" @ hersheys"])
  • "重大新闻:12盎司从周五开始销售的可口可乐和百事可乐瓶。" (可口可乐是来自可口可乐公司的产品[别名为#34;可乐"],百事可乐是PepsiCo公司的产品)
  • " #OMG,我刚买了我的梦想车。野马!!!!" (野马是福特的产品)

所以基本上,给定一段文字,查询文本以查看它是否提及产品并获得一些提示产品的指示(布尔或置信号)。

我有些担心:

  • 因拼写错误而缺少产品。我想也许我可以使用字符串相似性检查来捕捉这些。
  • 也会发现也是英语单词或东西的产品名称。就像野马一样,马与野马车一样
  • 需要保留产品的替代名称列表(例如"可乐"" coco-cola"等)

我真的不知道从哪里开始,但任何帮助都会受到赞赏。我已经看过NLTK和SciKit了,并没有真正从那里开始如何做到这一点。如果你知道解释这一点的例子或论文,链接会有所帮助。我此时并不特定于任何语言。 Java最好是Python和Scala。

2 个答案:

答案 0 :(得分:3)

您选择的答案并非真正回答您的问题。

您可以采用的最佳方法是使用命名实体识别器(NER)和POS标记器(抓取NNP / NNPS;专有名词)。数据库中可能缺少像Lyft(优步的竞争对手)这样的新品牌,但是如果没有开发自己的道具数据库,斯坦福标签将解决您的一半需求。

如果你有时间,我会建立一个包含每个品牌名称的字典,并简单地从推文字符串中提取它。 http://www.namedevelopment.com/brand-names.html 如果你知道如何抓取,那么解决它并不是一个难题。

答案 1 :(得分:1)

您的目标似乎是将给定文本中的语言形式分类为对语义实体的引用(可以通过许多不同的语言形式引用)。您描述了为获得良好结果而应该完成的一些子任务,但它们仍然是独立的任务。

拼写错误

为了处理潜在的拼写错误,您需要将这些可能的拼写错误与其规范(即正确)形式相关联。

  • Phonetic similarity:“拼写错误”的许多原因是单词的语音形式(即它的声音)与其拼写形式(即拼写方式)之间的关系不透明。因此,解决此问题的一个好方法是index terms phonetically,以便例如 innovashun 创新相关联。
  • Form similarity:此外,您可以执行string similarity check,但您可能会在结果中引入大量噪音,因为许多不同的词都是事实上非常相似(例如 chic vs. chick )。你可以先通过形态学分析这个单词然后再使用tree kernel来使这个变得更聪明。
  • 手工制作的映射:您还可以简单地列出常见的misspelling → canonical_form映射。这适用于上述方法无法处理的“例外”。

Word-sense disambiguation

Mustang 汽车和Mustang the horse是相同的形式但是指的是完全不同的实体(或者更确切地说是实体类,如果你想要迂腐) 。事实上,除非我们也知道单词的上下文,否则我们自己作为人类无法分辨哪一个意味着什么。对这种情境进行建模的一种广泛使用的方法是distributional lexical semantics:将一个单词与另一个单词的语义相似度定义为它们的词汇上下文的相似性,即它们在文本中前后的单词。

Linguistic aliases (synonyms)

如上所述,任何给定的语义实体都可以通过多种不同方式引用:浴室洗手间洗手间,< em>厕所,抽水马桶 WC loo 小男孩/女孩的房间对于像这样的通用实体的简单含义,它们通常可以被认为是变体拼写,与“常见拼写错误”相同,并且可以映射到“规范”带有清单的表格。对于诸如宝座室之类的模糊引用,也可以包括其他度量(例如词法 - 分布方法)以消除含义的歧义,因此您不需要例如我刚刚进入宝座室!白金汉宫的宝座室很漂亮

结论

你有很多工作要做,以便到达你想去的地方,但这都是有趣的东西,并且已经有很好的库可用于完成大部分这些任务。