数据挖掘——文本的意图匹配和分类

数据挖掘 分类 数据挖掘 nlp 文本挖掘 支持向量机
2022-03-07 08:13:42

问题

假设您有一个包含 100,000 多个与旅行预订相关的谷歌查询的列表。例如:

hotels in london
barcelona flight
city breaks to berlin
khao san road hostel
luxury holiday to paris
new york business class flight price
disneyland trip...
  1. 如何提取位置,即伦敦
  2. 对业务线进行分类,即航班、酒店、包裹等
  3. 对亲和力进行分类,即奢华、家庭、城市休闲、海滩等
  4. 使用此信息记录关键字中存在的各种模式的频率

    i.e. **keyword pattern**                **frequency**
    (destination) hotel                          xxx
    flight to (destination)                      yyy
    (theme) (destination) hotel                  zzz
    

潜在的解决方案

  1. 手动- 获取尽可能详尽的位置列表(大多数查询将针对旅游目的地)并查找与关键字的匹配项。同样,将关键字与可能的业务线标识符和关联标识符进行比较

  2. Google Cloud Natural Language API - 这可用于分析文本的实体和情感。例如伦敦的酒店 -> entity(hotels), entity(london) barcelona flight -> entity(flight), entity(barcelona) 这不是很强大,只支持英文。

  3. 机器学习- 似乎很困难,因为我没有任何关键字描述符。朴素贝叶斯适用还是支持向量机?

我最好也想在 R 中运行任何解决方案。

有人可以建议一个方向/潜在的解决方案吗?

1个回答

您列出的问题或多或少是相互独立的。提取 location,您应该研究名为 Named Entity Recognition 的解决方案类。它得到了广泛的支持,例如,NLTK 应该支持除英语之外的语言的位置提取。

第二个任务,业务线,对我来说似乎很神秘,因为你正在解决任务,你有关于这些线的完整列表的完整信息,所以可能编写任何类型的检测器(自定义 NER 都可以)是一种方法但是,如果所有查询都形成为 LOB + location,则通过解决第一个,您可以从查询中减去 location 以获得业务线。

从您提供的查询示例中,我看不出人类有任何方法可以提取任何亲和力,因此您应该对其进行调查以了解这些查询是否真的携带此类信息。

给定(1)和(2),第四个任务应该是微不足道的。