我认为瓦伦丁的回答很棒。我只是想 +1 他的评论,你似乎真的对如何找到重要的词而不是过滤不常见的词感兴趣(健美实际上可能不是很常见,但我知道即使在那种情况下它仍然与你无关任务)。
如果这个假设是正确的,我认为您实际上需要的是一个域分类器:您实际上面临一个分类问题,您希望将某些术语分类为垃圾邮件或非垃圾邮件。如果您已经有一个数据集或可以轻松创建一个数据集,您可以使用任何判别模型来做到这一点,但即使您没有,您也可以通过简单地比较短语中每个术语的两个概率来做到这一点:1)它的概率超过大文本文件与 2)它相对于您通过查询收集的较小的、特定于域的文本文件的概率。
考虑下表中的数据,其中
- 列
Term
是不言自明的;
- 列是包含 3 次提及该词的文本
p(term|Computer)
的概率;term
computer
- 列
p(term)
是所有文本中术语的概率;(注意所有文本都来自同一个来源,一个大型的原始文本数据集);
- column
domain association multiple
是除法的结果p(term|Computer) / p(term)
;
- 列
is_relevant
是布尔值;如果 in 的值domain association multiple
大于 10,则该词是相关的(=不常见);
- (请注意,数据集上没有出现一些单词,需要更多数据)。
|Term | p(term|Computer) | p(term) | domain association multiple | is_relevant|
|---|---|---|---|---|
|server | 0.0121 | 0.0008 | 15 | 1 |
|ocr | 0 | 0 | 0 | 0 |
|mac | 0.0044 | 0.0002 | 21.4 | 1 |
|best | 0.022 | 0.0124 | 1.8 | 0 |
|data | 0.1436 | 0.023 | 6.3 | 0 |
|analysis | 0.0362 | 0.0064 | 5.6 | 0 |
|opml | 0 | 0 | 0 | 0|
|sql | 0.0027 | 0.0001 | 23.9 | 1 |
|export | 0.0016 | 0.0004 | 4.5 | 0 |
|bodybuilding | 0 | 0 | 0 | 0|
这告诉您单词server, mac
andsql
与 domain 相关Computer
,而其余的则不相关(在 10 倍阈值处;较低的阈值可能允许analysis
并export
进入,但仍排除best
)。