在推文中识别书名的算法

时间:2015-08-01 21:45:53

标签: algorithm twitter nlp nltk text-mining

我正在尝试制作一个程序来分析大量的推文,并生成关于人们发推文的十大最受欢迎的书籍的报告。问题是我不知道如何识别推文中的书名。如果有人可以为这种类型的工作命名算法,或者至少引导我朝着正确的方向前进,那就太好了。

2 个答案:

答案 0 :(得分:2)

您需要一个要搜索的字词列表。然后只需通过推文并检查列表中的图书名称实例。

无法自动提取"预订标题"。例如,你怎么能区分某人谈论"火星人"他们昨晚在他们的后院看到了Andy Weir的书?

答案 1 :(得分:1)

如果您没有书名列表Wikipedia provides some lists。但如果你的目标是比较新书(夏季的畅销书),我猜他们不会在这些名单中。您可以在Internet上找到其他列表...无论如何(为了可靠性)您需要一个列表。

然后,正如@Adam_G告诉ealier:

  

无法自动提取"预订标题"。例如,你怎么能区分某人谈论"火星人"他们昨晚在他们的后院看到了Andy Weir的书?

让我们想象两本书" The cat"和#34;对绿鲨的恐惧"。 有许多推文包含序列" cat"但在大多数情况下,这些推文并不是关于这本书的。相反,所有的推文都包含了对绿鲨的恐惧"显然是关于这本书的。

所以你应该为每个令牌序列分配一个"概率" P成为本书的标题。在前面的例子中," cat"有一个非常低的P和#34;对绿鲨的恐惧"非常高P。您可以根据标题中的单词数量和这些单词的频率(以及2-gram,3-gram,...)计算P的值(可以使用大型语料库)

现在考虑一下这条推文:

  

我读了#34; The Cat"而我喜欢它!!

作为人类,我们理解" The Cat"是一本书因为推文包含" read"。 因此,对于P低的标题(例如" cat"),您可以尝试使用机器学习算法来了解推文是否真的与该书有关。我们的想法是根据推文中的单词计算包含标题的推文的概率。了解有关机器学习算法的更多信息,例如Naive Bayes分类器。