从小文本内容(如推文)生成标记

时间:2010-05-04 09:21:00

标签: twitter nlp text-extraction nltk text-analysis

我之前已经问了similar question,但我已经明白我有很大的限制:我正在处理小型文本集,例如用户推文以生成标签(关键字)。

似乎接受的建议(逐点互信息算法)是为了处理更大的文档。

有了这个约束(处理一小组文本),我该如何生成标签?

此致

2 个答案:

答案 0 :(得分:14)

多字标记的两阶段方法

您可以将所有推文汇集到一个更大的文档中,然后从整个推文集中提取 n 最有趣的搭配。然后,您可以返回并使用其中发生的搭配标记每条推文。使用此方法, n 将是为整个数据集生成的多字标记的总数。

对于第一阶段,您可以使用发布的here NLTK代码。第二阶段可以通过简单的for循环完成所有推文。但是,如果速度是一个问题,您可以使用pylucene快速查找包含每个搭配的推文。

单个单词标签的推文级别PMI

同样建议here,对于单个单词标签,您可以计算每个单词的point-wise mutual information和推文本身,即

PMI(term, tweet) = log [ P(term, tweet) / (P(term)*P(tweet)) 

同样,这将粗略地告诉您,在特定文档中遇到这个术语时,您会感到多么惊讶(或者更多),因为它会在更大的集合中遇到它。然后,您可以使用带有推文的PMI个字词来标记推文。

推文的常规更改

使用推文标记时可能需要进行的一些更改包括:

  • 只有使用单词或搭配作为推文的标记,如果它出现在某个数量或百分比的其他推文中。否则,PMI将倾向于使用仅在一条推文中出现但在其他任何地方都看不到的奇数术语来标记推文,例如,拼写错误和键盘噪音如#@ $#@ $%!。

  • 根据每条推文的长度缩放使用的标签数量。您可能能够为更长的推文提取2或3个有趣的标签。但是,对于较短的2个字的推文,您可能不想使用每个单词和搭配来标记它。根据推文长度,您可能需要尝试使用不同的截止值来尝试提取多少标签。

答案 1 :(得分:0)

我之前使用过一种方法,对于像SMSes这样的小文本内容,我只会重复同一行两次。令人惊讶的是,这适用于名词很可能成为主题的内容。我的意思是,你不需要重复它作为主题。