【问题标题】:Categorizing the text对文本进行分类
【发布时间】:2016-03-08 18:14:16
【问题描述】:

我正在尝试确定给定的 URL 是否是任何类型的事件。 Event 我的意思是 Event,例如 conference、summit、convention 等。这是我的初步算法:

我发现了以下(查看末尾)标记,如果它们在页面的内容中(我使用第三方库从 HTML 中查找内容),那么我将其标记为事件。当然,这并不止于此。我为每个令牌分配权重,权重表示 - 这个令牌可以说明给定 url 是一个事件的强度。例如如果我在内容中找到conference,与registration相比,它会更有信心告诉我这是一个事件——它也可能经常出现在其他类型的文章中。

所以,我计算每篇文章的分数如下: 总和(内容中标记的频率 * 其权重)。然后如果这个分数是> EVENT_THRESHOLD,那么我将文章标记为事件。这种方法的问题是:如果我得到,假设出现 20 次“事件”(信心不足,即权重低),分数会跳跃并打破 EVENT_THRESHOLD 并将文章标记为事件。有没有更好的方法来实现这一点?我希望我不会重新发明轮子。谢谢。附言我不是数据科学人:(

事件代币:

("event", 0.4),
("workshop", 1.0),
("registration", 0.4),
("register", 0.3), 
("conference", 1.0),
("tickets", 1.0), 
("summit", 0.5), 
("speaker", 0.5),
("training", 0.5),
("session", 0.4),
("convention", 1.0),
("webinar", 1.0),
("duration", 0.6)

【问题讨论】:

  • 是的,您正在重新发明轮子。有大量关于事件检测的科学文章。他们中的大多数人的共同点是他们使用某种 TF-IDF。

标签: java algorithm machine-learning data-science


【解决方案1】:

您肯定是在重新发明轮子。如果你想让你的生活变得简单,最好的办法是看看朴素贝叶斯模型。它与您的模型非常相似,但具有统计基础。

基本思想是,您学习每种类型的事件的先验概率P(conference),它基本上是来自类conference 的文档的一部分。此外,您计算特定事件页面包含单词的概率,例如,registration,它被计算为包含该单词 P(registration|conference) 的 conference 页面的分数。注意:如果不包含单词,则需要合并逆概率1-P(registration|conference) 所有概率的乘积为您提供页面属于某个事件类别的(非标准化)概率。

如果你考虑一下registration、conference这些词

conference 的概率是文档{registration} 的概率

P(registration|conference)* (1-P(conference | conference) )*P(conference)

根据该文档估计的概率在哪里

P(registration|conference)= 1
P(conference | conference) =1 

但是,您可以使用更多算法,例如多类 SVM、决策树......

【讨论】:

  • 太棒了!谢谢指导。我将继续学习 ML。
  • 我实现了这个算法,现在要训练我的模型。如何持续训练我的模型,流行的方法有哪些?
  • 你只需要不断地计算每个单词的出现次数。一旦你需要对一个 ew 计数进行分类,你就可以计算出相当便宜的概率。
猜你喜欢
  • 2015-03-16
  • 2018-11-07
  • 2013-02-10
  • 2017-04-11
  • 2013-08-27
  • 2011-12-15
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
相关资源
最近更新 更多