vig*_*mar 5 information-retrieval machine-learning tf-idf categorization document-classification
我对在文档分类中计算IDF(逆文档频率)有疑问.我有多个类别,包含多个培训文档.我使用以下公式计算文档中每个术语的IDF:
IDF(t,D)=log(Total Number documents/Number of Document matching term);
Run Code Online (Sandbox Code Playgroud)
我的问题是:
Total Number documents in Corpus只是您的语料库中的文档数量.所以如果你有20个文件,那么这个值是20.
Number of Document matching term是该术语t出现的文档数量的计数.因此,如果您总共有20个文档,并且该术语t出现在15个文档中,则值为Number of Documents matching term15.
因此,此示例的值将是 IDF(t,D)=log(20/15) = 0.1249
现在,如果我是正确的,那么每个文档有多个类别,并且您希望能够使用这些类别中的一个或多个对新文档进行分类.一种方法是为每个类别创建一个文档.每个类别文档都应包含所有标有此类别的文本.然后,您可以执行tf*idf这些文档.
然后,可以通过使用针对每个类别计算的不同术语值对查询的术语值求和来实现对新文档进行分类的简单方式.用于计算产品的结果最高结果的术语值的类别将排在第1位.
另一种可能性是使用查询中idf的每个术语为查询创建向量.查询中未出现的所有术语都给出了值0.然后可以使用例如余弦相似性来比较查询矢量与每个类别矢量的相似性.
平滑也是处理查询中未在语料库中出现的单词的有用技巧.
我建议阅读Christopher D. Manning,Prabhakar Raghavan和HinrichSchütze撰写的"信息检索简介" 第6.2和6.3节.
| 归档时间: |
|
| 查看次数: |
5532 次 |
| 最近记录: |